编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#81 #1001. A. 神秘谜题 Accepted 100 406 ms 52856 K C++ 17 / 894 B Komeiji Koishi 2019-06-06 0:08:20
显示原始代码
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, i, ty, x, ans = 0, tr[2][6000005], pw[30], u, sum[6000005], cnt = 0;
void opt(int p, int q) {
    swap(tr[0][p], tr[1][p]);
    if (tr[1][p] != -1 && sum[tr[1][p]])
        ans ^= pw[q];
    if (tr[0][p] != -1 && sum[tr[0][p]])
        ans ^= pw[q];
    if (tr[0][p] != -1)
        opt(tr[0][p], q + 1);
}
void ins(int x) {
    int i, u = 0;
    ans ^= x;
    sum[u] ^= 1;
    for (i = 0; i < 30; i++) {
        if (x & pw[i]) {
            if (tr[1][u] == -1)
                tr[1][u] = ++cnt;
            u = tr[1][u];
            sum[u] ^= 1;
        } else {
            if (tr[0][u] == -1)
                tr[0][u] = ++cnt;
            u = tr[0][u];
            sum[u] ^= 1;
        }
    }
}
int main() {
    memset(tr, -1, sizeof(tr));
    scanf("%d", &n);
    pw[0] = 1;
    for (i = 1; i < 30; i++) pw[i] = pw[i - 1] * 2;
    for (i = 1; i <= n; i++) {
        scanf("%d", &ty);
        if (ty == 1) {
            opt(0, 0);
            printf("%d\n", ans);
        } else {
            scanf("%d", &x);
            ins(x);
            printf("%d\n", ans);
        }
    }
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:208 ms
内存:52856 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
用时:198 ms
内存:52828 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