编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#48663 #1001. A. 神秘谜题 Accepted 100 358 ms 24760 K C++ 17 / 1.4 K XYZ 2021-05-17 8:59:19
显示原始代码
#include <bits/stdc++.h>

using namespace std;

struct tree {
    tree() {
        cnt = 0;
        t0 = nullptr;
        t1 = nullptr;
    }
    int cnt;
    tree* t0;
    tree* t1;
};

tree T = tree();
int sum1[32];

void update(tree* root, int depth) {
    if (root->t1 != nullptr) {
        update(root->t1, depth + 1);
    }
    if (root->t0 != nullptr) {
        sum1[depth] += root->t0->cnt;
    }
    if (root->t1 != nullptr) {
        sum1[depth] -= root->t1->cnt;
    }
    swap(root->t0, root->t1);
}

void tInsert(int x) {
    tree* t = &T;
    tree* nt;
    for (int i = 0; i < 31; i++) {
        int k = (x >> i) & 1;
        if (k == 0) {
            nt = t->t0;
            if (nt == nullptr) {
                nt = new tree();
                t->t0 = nt;
            }
        } else {
            nt = t->t1;
            if (nt == nullptr) {
                nt = new tree();
                t->t1 = nt;
            }
        }

        t->cnt++;
        if (k == 1)
            sum1[i]++;
        t = nt;
    }
}

int query() {
    int res = 0;
    for (int i = 0; i <= 31; i++) {
        res |= ((sum1[i] & 1) << i);
    }
    return res;
}

int main() {
    int n;
    int opt;
    memset(sum1, 0, sizeof(sum1));
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &opt);
        if (opt == 1) {
            update(&T, 0);
        } else {
            int tem;
            scanf("%d", &tem);
            tInsert(tem);
        }
        printf("%d\n", query());
    }
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:180 ms
内存:24760 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
用时:178 ms
内存:24760 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