首页 > 其他分享 >2018 ACM-ICPC 亚洲青岛区域网络赛

2018 ACM-ICPC 亚洲青岛区域网络赛

时间:2023-09-03 13:23:35浏览次数:35  
标签:std long int cin ACM ICPC i64 2018 using

A. Live Love

#include "bits/stdc++.h"

using namespace std;
using i64 = long long;

void solve() {
    int n, m;
    cin >> n >> m;
    cout << m << ' ' << n / (n - m + 1) << '\n';
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

C. Halting Problem

#include "bits/stdc++.h"

using namespace std;
using i64 = long long;

void solve() {
    int n;
    cin >> n;

    vector<array<int, 3>> a;
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        if (s == "add") {
            int v;
            cin >> v;
            a.push_back({0, v});
        } else if (s == "beq") {
            int v, k;
            cin >> v >> k;
            k--;
            a.push_back({1, v, k});
        } else if (s == "bne") {
            int v, k;
            cin >> v >> k;
            k--;
            a.push_back({2, v, k});
        } else if (s == "blt") {
            int v, k;
            cin >> v >> k;
            k--;
            a.push_back({3, v, k});			
        } else {
            int v, k;
            cin >> v >> k;
            k--;
            a.push_back({4, v, k});			
        }
    }

    vector<vector<int>> vis(n, vector<int>(256));
    int x = 0;
    for (int i = 0; i < n; ) {
        if (vis[i][x]) {
            cout << "No\n";
            return;
        }

        vis[i][x] = 1;
        auto &[o, v, k] = a[i];
        if (o == 0) {
            x = (x + v) % 256;
            i++;
        } else if (o == 1) {
            if (x == v) {
                i = k;
            } else {
                i++;
            }
        } else if (o == 2) {
            if (x != v) {
                i = k;
            } else {
                i++;
            }
        } else if (o == 3) {
            if (x < v) {
                i = k;
            } else {
                i++;
            }
        } else {
            if (x > v) {
                i = k;
            } else {
                i++;
            }
        }
    }
    cout << "Yes\n";
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

H. Traveling on the Axis

#include "bits/stdc++.h"

using namespace std;
using i64 = long long;

void solve() {
    string s;
    cin >> s;
    int n = s.size();
    vector<int> a(n);
    for (int i = 1; i < n; i++) {
        if (s[i] == s[i - 1]) {
            a[i] = 2;
        } else {
            a[i] = 1;
        } 
    }
    i64 ans = 0;
    for (int i = 0; i < n; i++) {
        int k = 2;
        if (s[i] == '1') {
            k = 1;
        }

        ans += i64(k) * (n - i) + i64(a[i]) * (n - i) * i;
    }
    cout << ans << '\n';
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

J. Press the Button

#include "bits/stdc++.h"

using namespace std;
using i64 = long long;

void solve() {
    i64 a, b, c, d, v, t;
    cin >> a >> b >> c >> d >> v >> t;

    i64 m = lcm(a, c);
    i64 ans = 0;
    i64 l = t % m, cnt = t / m;

    vector<i64> p;
    for (i64 i = 0; i < m; i += a) {
        if (i <= l) {
            ans += b;
        }
        ans += b * cnt;
        p.push_back(i);
    }
    for (i64 i = 0; i < m; i += c) {
        if (i <= l) {
            ans += d;
        }
        ans += d * cnt;
        p.push_back(i);
    }
    p.push_back(m);
    sort(p.begin(), p.end());

    int n = p.size();
    for (int i = 1; i < n; i++) {
        if (p[i] - p[i - 1] > v) {
            ans -= cnt;
            if (p[i] <= l) {
                ans--;
            }
        }
    }

    ans--;
    cout << ans << '\n';
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

K. XOR Clique

#include "bits/stdc++.h"

using namespace std;
using i64 = long long;

#define range(a) begin(a), end(a)

void solve() {
    int n;
    cin >> n;
    vector<int> a(32);
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        a[__lg(x)]++;
    }
    cout << *max_element(range(a)) << '\n';
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

标签:std,long,int,cin,ACM,ICPC,i64,2018,using
From: https://www.cnblogs.com/kiddingma/p/17674888.html

相关文章

  • citect2018R2过程分析器趋势笔标签加上工程单位显示
    这两天在家里学习练习了CITECT2018R2上过程分析器趋势笔标签上显示出工程单位,在新浪博客记录过一次,在这里也记录一下。建立一个unity程序,有两个变量,分别是流量和浓度,建立的过程不在这里记录。新建citect2018R2项目,配置IO设备指向unity模拟器,建立变量和趋势变量,过程也不在这里记录......
  • 2021 ICPC 沈阳站 补题
    E.EdwardGaming,theChampion签到题,扫一遍判断就行F.EncodedStringsI简单题,先\(O(n^2)\)大力预处理出来所有字符串,然后直接sortB.BitwiseExclusive-ORSequence题意简述一个需要填数的序列,给定多个限制,每个限制形如\(a_u\oplusa_v=a_w\)表示第\(u\)个数......
  • P8675 [蓝桥杯 2018 国 B] 搭积木 题解
    总述此题用区间dp解决,二维前缀和优化。朴素做法阶段:自上而下数每一层。状态:\(dp_{i,l,r}\)表示自上而下数第\(i\)行中在\([l,r]\)摆积木的方案数。状态转移方程:根据题意可知,若要在\([l,r]\)中摆积木,那么\([l,r]\)中不允许有\(\tt{X}\),而第\(i\)层的\([l,r]\)......
  • The 2021 ICPC Asia Shenyang Regional Contest 解题报告
    The2021ICPCAsiaShenyangRegionalContestsolo七题罚时738打到金尾了,但是这个G和I也应该是自己能做出来的。G找了若干性质确实转化到最后一步了。但本应该搞出的dp没有想到。G和M感觉都有点降智。而I则是被复数吓到了。有点菜。B:拆位,扩展域并查集。E:签到。F......
  • 洛谷P5865 [SEERC2018] Tree
    P5865[SEERC2018]Tree题目传送门分析本题不难,只要枚举即可。假设两点之间的距离为树的端点,然后再去枚举其他点,符合的加入集合。若黑色点的个数超出了定义个数,那么就更新一遍。最后求最小值。ACCode:#include<bits/stdc++.h>//保命万能头usingnamespacestd;//命名空......
  • BUUCTF [HCTF 2018]admin
    寻找破解知识点方法1-Flasksession伪造首先,先注册一个再登录,在changepassword那里查看源码,可以看到有提示:原链接已经404,看的这一个https://github.com/Wkh19/hctf_flask这是一个flask模板,这样来看,这是一道模板注入类型的题目。Session机制详解session可以在此处查看......
  • The 2022 ICPC Asia Xian Regional Contest
    链接C.CloneRanran题意:一个人要准备一场比赛,需要出c道题,他现在可以选择两种操作:1.花费a分钟自我复制一次。(复制的自己也可以接着复制)2.花费b分钟出一道题。问最短要多少分钟可以准备c道题。思路:枚举自我复制的次数,挨个判断就行。#include<bits/stdc++.h>usingnamespaces......
  • NOIP2018提高组初赛易错题解析
    2.下列属于解释执行的程序设计语言是()A.C B.C++ C.Pascal D.Python错误原因:忘记了正解:C、C++和Pascal都是编译性语言,而Python是解释性语言 5.设某算法的时间复杂度函数的递推方程是 T(n)=T(n-1)+n(n 为正整数)及 T(0)=1,则该算法的时间复杂度为()A.O(logn) ......
  • The 2022 ICPC Asia Nanjing Regional Contest (G. Inscryption)
    Problem-G-Codeforces反悔贪心#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;#defineendl"\n"constintN=1e6+5;inlineintgcd(inta,intb){returnb>0?gcd(b,a%b):a;}intmain(){ios::......
  • The 2022 ICPC Asia Nanjing Regional Contest(A.Stop, Yesterday Please No More)
    模拟边界(不是袋鼠)移动,通过二维差分维护左上角和右下角,同时注意排除重复的点#include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"typedeflonglongll;constintN=1e3+5;intf[N][N];intmain(){ios::sync_with_stdio(false),cin.tie(0),cout.......