编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#69565 #1001. A. 神秘谜题 Accepted 100 425 ms 52064 K C++ 11 / 1.7 K wty 2022-05-17 11:05:55
显示原始代码
#include <bits/stdc++.h>
#define db double
#define ll long long
#define vi vector<int>
#define vii vector<vi>
#define pii pair<int, int>
#define vp vector<pii>
#define vip vector<vp>
#define mkp make_pair
#define pb push_back
#define Case(x) cout << "Case #" << x << ": "
using namespace std;
const int INF = 0x3f3f3f3f;
const int P = 998244353;
const int N = 1e7 + 10;
const int DEP = 31;
struct Node {
    Node *ch[2];
    int cnt, sz, val, dep;
    Node() {
        ch[0] = ch[1] = nullptr;
        sz = val = dep = 0;
    }
};
void pushup(Node *p) {
    p->val = 0;
    p->sz = p->cnt;
    for (int i = 0; i < 2; i++) {
        Node *ch = p->ch[i];
        if (ch) {
            p->sz += ch->sz;
            p->val ^= ch->val;
            if (ch->sz & 1) {
                p->val ^= i << (p->dep);
            }
        }
    }
}
void insert(Node *&p, int x, int dep) {
    if (!p) {
        p = new Node;
        p->dep = dep;
    }
    if (dep > DEP) {
        p->sz++;
        p->cnt++;
        return;
    }
    insert(p->ch[(x >> dep) & 1], x, dep + 1);
    pushup(p);
}
void add_one(Node *p) {
    if (!p)
        return;
    swap(p->ch[0], p->ch[1]);
    add_one(p->ch[0]);
    pushup(p);
}
signed main() {
#ifdef _DEBUG
    freopen("1.in", "r", stdin);
    FILE *file = freopen("out", "w", stdout);
#endif
    ios::sync_with_stdio(0);
    cin.tie(0);
    int Q;
    cin >> Q;
    Node *rt = new Node;
    while (Q--) {
        int opt, x;
        cin >> opt;
        if (opt == 1) {
            add_one(rt);
        } else {
            cin >> x;
            insert(rt, x, 0);
        }
        cout << rt->val << '\n';
    }
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:215 ms
内存:52064 KiB

输入文件(1.in

200000
2 526767110
2 724642759
2 567837900
2 104106873
2 357915481
2 33997211
2 444788944
2 
<1586974 bytes omitted>

答案文件(1.ans

526767110
877985729
361528077
330887284
116239149
82537142
510237286
843295274
453728745
55
<2188330 bytes omitted>

用户输出

526767110
877985729
361528077
330887284
116239149
82537142
510237286
843295274
453728745
559263713
323554710
713540578
520942594
<1988302 bytes omitted>

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:210 ms
内存:52040 KiB

输入文件(2.in

200000
2 515979308
2 512702340
2 684230440
2 488136957
2 598252313
2 283603971
2 349877373
2
<1586842 bytes omitted>

答案文件(2.ans

515979308
5115816
679905408
899606653
372667236
114362215
302756634
473674072
520218589
525
<2192841 bytes omitted>

用户输出

515979308
5115816
679905408
899606653
372667236
114362215
302756634
473674072
520218589
525056845
703148326
764590712
207056035

<1992813 bytes omitted>

系统信息

Exited with return code 0