The 2019 Asia Nanchang First Round Online Programming Contest

E. Magic Master

比赛的时候xy用链表弄了一个,赛后发现deque更快,可能原因是deque内存中连续。总之deque是一种高效的数据结构,甚至可以随机访问随机删除,自动管理的分块数组?只不过不能手动在块上维护信息就是麻烦点。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

deque<int> dq;

int main() {
    int T;
    scanf("%d", &T);
    for(int ti = 1; ti <= T; ++ti) {
        int n, m;
        scanf("%d%d", &n, &m);
        dq.push_back(n);
        for(int i = n - 1; i >= 1; --i) {
            for(int mi = 1; mi <= m; ++mi) {
                dq.push_back(dq.front());
                dq.pop_front();
            }
            dq.push_back(i);
        }

        int Q;
        scanf("%d", &Q);
        for(int qi = 1, q; qi <= Q; ++qi) {
            scanf("%d", &q);
            printf("%d\n", dq[n - q]);
        }
        dq.clear();
    }
    return 0;
}

B. Fire-Fighting Hero

理解错题意了,出题方有点东西。在新的题意背景下所有的消防队是同一个单源出发的,只需要找一个超级源连一条权为0的边即可。

A. Enju With math problem

先暴力判前200个质数防止后面出些小东西。

看起来是要先拉出1.5e8的那几个为数不多的质数,检测一下他们周围是不是有,花的复杂度不高。然后把所有这些质数乘以2得到一些合数2p,那么(除了22=4以外)根据欧拉函数的积性性质,他们的欧拉函数一定是phi(2p)=phi(2)phi(p),根据这些合数定位再找一遍。

C. Hello 2019

这个看起来就像早上的wrong那道题。

猜你喜欢

转载自www.cnblogs.com/Inko/p/11489007.html