QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#667918#9518. 观虫我 (旧版数据)11d10xy0 0ms0kbC++141.2kb2024-10-23 09:45:242024-10-23 09:45:25

Judging History

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

  • [2024-10-23 09:45:25]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:0kb
  • [2024-10-23 09:45:24]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using u32=unsigned;
using u64=unsigned long long;
mt19937 g(time(0));
int qn;
struct Q_{char op;u32 x;}q[1000010];
u64 a[1<<26],mcost=-1ull;
array<u32,3>S;
int main(){
   scanf("%*d%d",&qn);
   for(int i=1;i<=qn;i++){
      scanf(" %c%u",&q[i].op,&q[i].x);
   }
   for(int T=20;T--;){
      array<u32,3>s;u64 cost=0;
      for(int k=0;k<26;k++)s[g()%3]|=1<<k;
      for(int i=1;i<=qn;i++){
         u64 x=q[i].x>>6;
         cost+=1ull<<__builtin_popcount(q[i].op=='!'?(~x&s[0])|(x&s[2]):(x&s[1])|(~x&s[2]));
      }
      if(cost<mcost)mcost=cost,S=s;
   }
   u64 subs[64]{};
   for(int s=0;s<64;s++)for(int t=0;t<64;t++)
   if((s|t)==s)subs[s]|=1ull<<t;
   for(int i=1;i<=qn;i++){
      u32 u=q[i].x>>6,d=q[i].x&63;
      if(q[i].op=='!'){
         u32 U=(~u&S[0])|(u&S[2]);u&=~S[2];
         for(u32 w=U;;w=w-1&U){
            a[w^u]^=1ull<<d;
            if(!w)break;
         }
      }else{
         u32 U=(u&S[1])|(~u&S[2]);u&=~S[2];
         int ans=0;
         for(u32 w=U;;w=w-1&U){
            ans^=__builtin_parityll(a[w^u]&subs[d]);
            if(!w)break;
         }printf("%d\n",ans);
      }
   }
   return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 0
Runtime Error

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:


result:


Subtask #2:

score: 0
Runtime Error

Test #11:

score: 0
Runtime Error

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:


result:


Subtask #3:

score: 0
Runtime Error

Test #21:

score: 0
Runtime Error

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:


result:


Subtask #4:

score: 0
Runtime Error

Test #31:

score: 0
Runtime Error

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:


result:


Subtask #5:

score: 0
Runtime Error

Test #41:

score: 0
Runtime Error

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:


result: