QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#667918 | #9518. 观虫我 (旧版数据) | 11d10xy | 0 | 0ms | 0kb | C++14 | 1.2kb | 2024-10-23 09:45:24 | 2024-10-23 09:45:25 |
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;
}
详细
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...