编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#15274 #1001. A. 神秘谜题 Time Limit Exceeded 0 2079 ms 280 K C++ / 1.1 K 电类809-廖原 2019-07-09 9:46:01
显示原始代码
#include <cstdio>
#include <algorithm>
#include <vector>
#define ULL unsigned long long
#define LL long long
using namespace std;
char ch;
bool fh;
inline void read(int &a) {
    for (fh = 0, ch = getchar(); ch < '0' || ch > '9'; ch = getchar())
        if (ch == '-')
            fh = 1;
    for (a = 0; ch >= '0' && ch <= '9'; ch = getchar()) (a *= 10) += ch - '0';
    if (fh)
        a = -a;
}
struct node {
    int s[2];  // s[0]表示0,s[1]表示1
};
node Trie[32 * 200010];
int Ttop;
int n;
int A[32];
int cnt;
inline void insert(int x) {
    int u, l, p;
    for (p = 1, l = 0; x; p = Trie[p].s[u], x >>= 1, l++) {
        u = x & 1;
        A[l] ^= u;
        if (!Trie[p].s[u])
            Trie[p].s[u] = ++Ttop;
    }
}
void Plus(int p, int l) {
    if (!(Trie[p].s[0] | Trie[p].s[1])) {
        Trie[p].s[1] = ++Ttop;
        A[l] ^= 1;
        return;
    }
    swap(Trie[p].s[0], Trie[p].s[1]);
    A[l] ^= cnt;
    if (Trie[p].s[0])
        Plus(Trie[p].s[0], l + 1);
}
inline int Count() {
    int vi, l, x = 0;
    for (vi = 0, l = 1; vi < 31; vi++, l <<= 1)
        if (A[vi])
            x += l;
    return x;
}
int main() {
    int vi, opt, x;
    freopen("T.in", "r", stdin);
    Ttop = 1;
    read(n);
    for (vi = 1; vi <= n; vi++) {
        read(opt);
        if (opt == 2) {
            read(x);
            insert(x);
            cnt ^= 1;
        } else
            Plus(1, 0);
        x = Count();
        printf("%d\n", x);
    }
}
子任务 #1
Time Limit Exceeded
得分:0
测试点 #1
Time Limit Exceeded
得分:0
用时:1037 ms
内存:280 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>
测试点 #2
Time Limit Exceeded
得分:0
用时:1042 ms
内存:276 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>