QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#690974#9518. 观虫我 (旧版数据)hos_lyric#0 5853ms524712kbC++142.4kb2024-10-31 09:11:122024-10-31 09:11:12

Judging History

你现在查看的是最新测评结果

  • [2024-10-31 09:11:12]
  • 评测
  • 测评结果:0
  • 用时:5853ms
  • 内存:524712kb
  • [2024-10-31 09:11:12]
  • 提交

answer

#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

#pragma GCC target("avx2")

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")


// [0, E), [E, F), [F, 32)
constexpr int E = 6;
constexpr int F = 21;
constexpr unsigned MASK_A = (1U << E) - 1U;
constexpr unsigned MASK_B = (1U << F) - (1U << E);
constexpr unsigned MASK_C = 0U - (1U << F);

int N, Q;
unsigned long long zs[1 << 26];

int main() {
  unsigned long long pre[1 << E] = {};
  for (int a = 0; a < 1 << E; ++a) for (int b = 0; b < 1 << E; ++b) if (!(a & ~b)) {
    pre[a] |= 1ULL << b;
  }
  
  scanf("%d%d", &N, &Q);
  
  for (int q = 0; q < Q; ++q) {
    char O;
    unsigned I;
    scanf(" %c%u", &O, &I);
    
    const unsigned A = (I & MASK_A);
    const unsigned B = (I & MASK_B) >> E;
    const unsigned C = (I & MASK_C) >> E;
    if (O == '!') {
      // superset of B
      for (unsigned b = B; b < 1U << (F - E); ++b |= B) {
        zs[b | C] ^= pre[A];
      }
    } else {
      unsigned long long ans = 0;
      // subset of C
      for (unsigned c = C; ; (c -= 1U << (F - E)) &= C) {
        ans ^= zs[B | c];
        if (!c) break;
      }
      ans = ans >> A & 1;
      printf("%llu\n", ans);
    }
  }
  return 0;
}

詳細信息

Subtask #1:

score: 0
Time Limit Exceeded

Test #1:

score: 20
Accepted
time: 1218ms
memory: 6956kb

input:

24 1000000
! 9475137
! 4501536
? 14277831
? 16695039
? 5723102
? 6093887
? 3014539
! 475969
? 12500973
! 8750136
? 15617895
! 4589313
! 152300
? 3612579
? 15248179
! 764162
! 4461105
? 7274495
? 13299697
! 8388872
? 13490383
! 3875594
! 9439685
? 16776189
! 6443172
? 13864879
! 395691
? 7142271
? 16...

output:

1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
...

result:

ok Accepted.

Test #2:

score: 0
Time Limit Exceeded

input:

24 1000000
! 0
? 16777215
! 0
! 0
! 262144
? 16777215
? 16777215
? 15728639
! 0
? 16777215
? 16777215
! 16384
? 16777211
! 0
? 16777215
! 0
! 0
? 16760831
! 0
! 0
? 16777215
! 0
? 16777215
! 0
? 16777215
! 0
? 16777215
? 16777215
! 0
! 0
? 16777215
? 16777215
? 16777215
? 16777215
! 32768
? 16777215...

output:

1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
...

result:


Subtask #2:

score: 0
Time Limit Exceeded

Test #11:

score: 20
Accepted
time: 1391ms
memory: 12076kb

input:

26 1000000
! 18006034
? 66957270
! 2133064
! 147618
! 34621442
? 49715575
? 62879287
! 18620682
? 67073751
! 62941186
! 7634532
? 67100031
? 12517237
! 4804997
? 65991126
! 138275
? 65722687
? 66043391
! 19147234
? 45743743
! 2242648
! 44378336
? 48226020
! 34341926
! 665045
? 55433083
! 5554254
? 4...

output:

0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
...

result:

ok Accepted.

Test #12:

score: 0
Time Limit Exceeded

input:

26 1000000
! 0
! 16779264
! 4
? 67092479
? 67108863
! 1048832
! 0
? 67108863
? 67108863
? 67108863
? 67108863
! 0
! 0
! 0
? 67108863
! 2048
? 67108863
! 0
? 66584575
! 8192
! 0
? 67108863
? 67108863
! 0
! 0
? 67092479
? 67108863
! 0
? 67108863
? 67108863
? 67108863
? 67108863
? 67108863
! 0
? 671088...

output:

1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
...

result:


Subtask #3:

score: 0
Time Limit Exceeded

Test #21:

score: 20
Accepted
time: 1829ms
memory: 36720kb

input:

28 1000000
! 1081468
! 128476263
! 67930241
? 94304031
! 103698752
! 19982
! 198050624
? 249519591
? 71286719
? 255700799
! 103309888
! 819340
! 12852092
? 124739445
? 192734967
! 101320328
! 117594711
? 252032927
! 134267948
? 262940285
! 3155972
? 267876218
! 41984160
? 246413294
? 246824252
? 163...

output:

0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
...

result:

ok Accepted.

Test #22:

score: 0
Time Limit Exceeded

input:

28 1000000
! 0
? 268435455
? 268435455
? 268435455
? 268435455
? 268435454
! 262144
! 2097152
? 268435455
? 266338303
! 0
? 268435455
? 268431359
? 268435455
? 268435199
? 268435455
! 0
? 268435455
? 268304383
? 268435455
? 267386871
! 0
! 0
! 0
! 8192
? 234881023
? 268435455
? 268435455
? 268435455...

output:

1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
...

result:


Subtask #4:

score: 0
Time Limit Exceeded

Test #31:

score: 20
Accepted
time: 3278ms
memory: 135020kb

input:

30 1000000
! 33852274
? 1017904007
? 1046413001
! 151029382
? 466826079
? 250568375
! 6769874
! 2106474
? 536832803
? 209627867
! 167104971
? 1048372157
! 245380745
! 25174496
? 819646460
! 539548800
! 671358165
? 402955591
? 527753201
! 582494209
? 862862931
? 938974695
? 263672827
? 366968669
? 87...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
...

result:

ok Accepted.

Test #32:

score: 0
Time Limit Exceeded

input:

30 1000000
! 16777216
? 1073741823
! 0
! 0
! 0
? 1073741823
? 1073741823
? 1056964607
? 1073741823
! 0
? 1073741823
! 0
! 0
? 1073741823
? 1073741823
! 0
! 0
? 1073741823
! 0
? 1069408255
! 0
? 1073741823
! 0
? 1073741823
! 0
? 1073741823
! 128
! 131072
? 1073741823
? 1073741823
? 1073741823
? 10737...

output:

1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
...

result:


Subtask #5:

score: 0
Time Limit Exceeded

Test #41:

score: 20
Accepted
time: 5853ms
memory: 524712kb

input:

32 1000000
! 2474971548
! 348268033
? 1055293046
? 3382525679
? 1805515707
? 3210332902
? 2805668987
? 4025974780
! 2217771280
! 176949664
! 4213841344
! 1477473321
? 3150869759
? 2127418041
! 1610631720
! 3624477314
! 2288149532
! 70909964
! 40117153
! 1343751456
? 3758095615
! 513059275
! 31956816...

output:

0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
...

result:

ok Accepted.

Test #42:

score: 0
Time Limit Exceeded

input:

32 1000000
! 0
? 4294965247
? 4294967295
? 4278189567
? 4294967293
? 4294959103
? 4290772991
! 0
! 0
! 0
! 0
! 32768
? 4294967295
! 0
? 4294967295
! 0
! 0
? 4294967295
? 4160749567
? 4294967295
! 0
? 4294967295
? 4294967295
! 8192
! 0
? 3221225471
! 0
? 4294966783
! 0
? 4160749567
! 0
! 0
? 42949672...

output:

1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
...

result: