QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#86687 | #4000. Dynamic Reachability | fansizhe | RE | 5367ms | 10776kb | C++23 | 2.4kb | 2023-03-10 16:07:31 | 2023-03-10 16:07:33 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
const int B=32;
int n,m,q;
vector<pair<int,int> > edge[50005];
int ex[100005],ey[100005];
struct Query{
int opt,x,y;
}Q[100005];
vector<int> vec;
int pos[50005];
int del[100005],vis[100005];
ull to[50005],to1[64];
queue<int> que;
int id[50005],cnt,po[50005],deg[50005];
bool cmp(int x,int y){return id[x]<id[y];}
int main(){
scanf("%d%d%d",&n,&m,&q);
for(int i=1;i<=m;i++){
int x,y;scanf("%d%d",&x,&y);
edge[x].push_back(make_pair(i,y));
ex[i]=x,ey[i]=y;deg[y]++;
}
for(int i=1;i<=n;i++)if(!deg[i])que.push(i);
while(!que.empty()){
int x=que.front();que.pop();
po[++cnt]=x,id[x]=cnt;
for(auto e:edge[x])if(!--deg[e.second])que.push(e.second);
}
assert(cnt==n);
for(int i=1;i<=q;i++){
scanf("%d",&Q[i].opt);
if(Q[i].opt==1)scanf("%d",&Q[i].x);
else scanf("%d%d",&Q[i].x,&Q[i].y);
}
for(int ql=1,qr=B;ql<=q;ql+=B,qr+=B){
qr=min(qr,q);vec.clear();
for(int i=ql;i<=qr;i++)
if(Q[i].opt==1)vec.push_back(ex[Q[i].x]),vec.push_back(ey[Q[i].x]),vis[Q[i].x]=1;
else vec.push_back(Q[i].x),vec.push_back(Q[i].y);
sort(vec.begin(),vec.end(),cmp);
vec.erase(unique(vec.begin(),vec.end()),vec.end());
for(int i=0;i<vec.size();i++)pos[vec[i]]=i+1;
for(int i=n;i>=1;i--){
int x=po[i];
if(pos[x])to[x]=1ull<<pos[x]-1;
else to[x]=0;
for(auto e:edge[x])if(!del[e.first]&&!vis[e.first])to[x]|=to[e.second];
}
for(int i=0;i<vec.size();i++){
to1[i]=0;
for(int j=0;j<vec.size();j++)
if(to[vec[i]]&(1ull<<j))to1[i]|=1ull<<j;
}
for(int i=ql;i<=qr;i++)if(Q[i].opt==1)if(vis[Q[i].x]){
vis[Q[i].x]=0;
if(!del[Q[i].x])
if(!(to[ex[Q[i].x]]&(1ull<<pos[ey[Q[i].x]]-1)))
to1[pos[ex[Q[i].x]]-1]|=1ull<<pos[ey[Q[i].x]]-1;
}
for(int i=ql;i<=qr;i++)
if(Q[i].opt==1){
del[Q[i].x]^=1;
if(!(to[ex[Q[i].x]]&(1ull<<pos[ey[Q[i].x]]-1)))
to1[pos[ex[Q[i].x]]-1]^=1ull<<pos[ey[Q[i].x]]-1;
}else{
while(!que.empty())que.pop();
int S=pos[Q[i].x]-1,T=pos[Q[i].y]-1;
que.push(S);
ull now=1ull<<S;
while(!que.empty()){
int x=que.front();que.pop();
ull sta=to1[x]^(to1[x]&now);
while(sta){
int y=__builtin_ctzll(sta);
sta^=1ull<<y,now|=1ull<<y;
que.push(y);
if(y==T)break;
}
if(now&(1ull<<T))break;
}
if(now&(1ull<<T))puts("YES");
else puts("NO");
}
for(int x:vec)pos[x]=0;
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 4ms
memory: 8248kb
input:
5 6 7 1 2 1 3 2 4 3 4 3 5 4 5 2 1 5 2 2 3 1 3 1 4 2 1 4 1 3 2 1 5
output:
YES NO NO YES
result:
ok 4 lines
Test #2:
score: 0
Accepted
time: 4822ms
memory: 10200kb
input:
50000 100000 100000 36671 44121 25592 44321 13226 46463 13060 25694 14021 20087 22881 38333 34655 47774 22868 26462 31154 48710 27491 32365 5874 47497 17622 28600 1886 14193 22315 23656 14973 22704 1335 25384 22612 34915 2852 48213 23334 25519 24342 28784 6238 36125 14598 39494 33069 34250 2123 3059...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok 50000 lines
Test #3:
score: 0
Accepted
time: 5029ms
memory: 10332kb
input:
50000 100000 100000 27059 36120 32335 41190 9436 29046 36520 44281 25005 39115 37096 43321 11891 38873 10439 31878 19154 25918 26756 44170 9594 16092 9920 23747 17107 35055 31401 35308 17102 35604 18635 26767 27925 29726 7012 14266 973 21483 622 41029 25685 31856 36951 46699 18103 46885 9911 18465 2...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok 50000 lines
Test #4:
score: 0
Accepted
time: 3983ms
memory: 10296kb
input:
50000 100000 100000 7 14 14 21 21 28 28 35 35 42 42 49 49 56 56 63 63 70 70 77 77 84 84 91 91 98 98 105 105 112 112 119 119 126 126 133 133 140 140 147 147 154 154 161 161 168 168 175 175 182 182 189 189 196 196 203 203 210 210 217 217 224 224 231 231 238 238 245 245 252 252 259 259 266 266 273 273 ...
output:
NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO YES NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO YES NO NO YES NO NO NO YES NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO YES NO NO NO NO NO YES NO NO NO NO NO NO N...
result:
ok 100000 lines
Test #5:
score: 0
Accepted
time: 5041ms
memory: 10216kb
input:
50000 100000 100000 233 466 466 699 699 932 932 1165 1165 1398 1398 1631 1631 1864 1864 2097 2097 2330 2330 2563 2563 2796 2796 3029 3029 3262 3262 3495 3495 3728 3728 3961 3961 4194 4194 4427 4427 4660 4660 4893 4893 5126 5126 5359 5359 5592 5592 5825 5825 6058 6058 6291 6291 6524 6524 6757 6757 69...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok 50000 lines
Test #6:
score: 0
Accepted
time: 5367ms
memory: 10376kb
input:
50000 100000 100000 13 26 26 39 39 52 52 65 65 78 78 91 91 104 104 117 117 130 130 143 143 156 156 169 169 182 182 195 195 208 208 221 221 234 234 247 247 260 260 273 273 286 286 299 299 312 312 325 325 338 338 351 351 364 364 377 377 390 390 403 403 416 416 429 429 442 442 455 455 468 468 481 481 4...
output:
NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO ...
result:
ok 50000 lines
Test #7:
score: 0
Accepted
time: 5067ms
memory: 10248kb
input:
50000 100000 100000 4 8 8 12 12 16 16 20 20 24 24 28 28 32 32 36 36 40 40 44 44 48 48 52 52 56 56 60 60 64 64 68 68 72 72 76 76 80 80 84 84 88 88 92 92 96 96 100 100 104 104 108 108 112 112 116 116 120 120 124 124 128 128 132 132 136 136 140 140 144 144 148 148 152 152 156 156 160 160 164 164 168 16...
output:
YES YES NO NO NO NO NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO YES NO NO NO NO YES YES NO NO YES NO NO NO NO NO YES YES NO YES YES NO NO NO NO NO NO NO NO NO NO NO NO NO YES YES NO NO NO NO YES NO YES YES NO NO YES NO YES YES NO NO YES NO NO YES NO NO NO NO NO N...
result:
ok 50000 lines
Test #8:
score: 0
Accepted
time: 4526ms
memory: 10288kb
input:
50000 100000 100000 2 4 4 6 6 8 8 10 10 12 12 14 14 16 16 18 18 20 20 22 22 24 24 26 26 28 28 30 30 32 32 34 34 36 36 38 38 40 40 42 42 44 44 46 46 48 48 50 50 52 52 54 54 56 56 58 58 60 60 62 62 64 64 66 66 68 68 70 70 72 72 74 74 76 76 78 78 80 80 82 82 84 84 86 86 88 88 90 90 92 92 94 94 96 96 98...
output:
NO NO NO NO NO NO YES YES YES YES NO YES YES YES NO NO YES YES NO NO NO NO YES NO YES YES NO YES NO YES YES NO NO YES YES YES NO YES YES NO NO YES YES YES NO NO YES NO YES NO NO NO YES YES YES NO YES NO NO YES YES YES YES YES YES NO NO YES NO NO YES NO YES YES NO NO NO NO YES NO NO NO YES YES NO YES...
result:
ok 50000 lines
Test #9:
score: 0
Accepted
time: 3617ms
memory: 10640kb
input:
50000 100000 100000 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES ...
result:
ok 50000 lines
Test #10:
score: 0
Accepted
time: 3509ms
memory: 10684kb
input:
50000 100000 100000 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES NO NO YES YES YES YES YES NO YES YES YES YES YES YES YES YES NO NO NO YES YES NO YES YES YES YES NO YES YES YES YES YES YES YES YES NO YES YES YES YES YES YE...
result:
ok 50000 lines
Test #11:
score: 0
Accepted
time: 4051ms
memory: 10688kb
input:
50000 100000 100000 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES Y...
result:
ok 50000 lines
Test #12:
score: 0
Accepted
time: 5053ms
memory: 10636kb
input:
50000 100000 100000 1 2 2 3 3 4 4 5 6 7 7 8 8 9 9 10 10 11 12 13 13 14 14 15 15 16 16 17 18 19 19 20 20 21 21 22 22 23 24 25 25 26 26 27 27 28 28 29 30 31 31 32 32 33 33 34 34 35 36 37 37 38 38 39 39 40 40 41 42 43 43 44 44 45 45 46 46 47 48 49 49 50 50 51 51 52 52 53 54 55 55 56 56 57 57 58 58 59 6...
output:
YES NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO N...
result:
ok 50000 lines
Test #13:
score: 0
Accepted
time: 1771ms
memory: 10640kb
input:
50000 100000 100000 12500 12501 12501 12502 12502 12503 12503 12504 12504 12505 12505 12506 12506 12507 12507 12508 12508 12509 12509 12510 12510 12511 12511 12512 12512 12513 12513 12514 12514 12515 12515 12516 12516 12517 12517 12518 12518 12519 12519 12520 12520 12521 12521 12522 12522 12523 1252...
output:
NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES...
result:
ok 50000 lines
Test #14:
score: 0
Accepted
time: 1837ms
memory: 10508kb
input:
50000 100000 100000 12500 12501 12501 12502 12502 12503 12503 12504 12504 12505 12505 12506 12506 12507 12507 12508 12508 12509 12509 12510 12510 12511 12511 12512 12512 12513 12513 12514 12514 12515 12515 12516 12516 12517 12517 12518 12518 12519 12519 12520 12520 12521 12521 12522 12522 12523 1252...
output:
NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES...
result:
ok 50000 lines
Test #15:
score: 0
Accepted
time: 1888ms
memory: 10776kb
input:
50000 100000 100000 12500 12501 12501 12502 12502 12503 12503 12504 12504 12505 12505 12506 12506 12507 12507 12508 12508 12509 12509 12510 12510 12511 12511 12512 12512 12513 12513 12514 12514 12515 12515 12516 12516 12517 12517 12518 12518 12519 12519 12520 12520 12521 12521 12522 12522 12523 1252...
output:
NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES N...
result:
ok 50000 lines
Test #16:
score: 0
Accepted
time: 1750ms
memory: 10016kb
input:
50000 100000 100000 12500 12501 12501 12502 12502 12503 12503 12504 12504 12505 12505 12506 12506 12507 12507 12508 12508 12509 12509 12510 12510 12511 12511 12512 12512 12513 12513 12514 12514 12515 12515 12516 12516 12517 12517 12518 12518 12519 12519 12520 12520 12521 12521 12522 12522 12523 1252...
output:
NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO N...
result:
ok 50000 lines
Test #17:
score: 0
Accepted
time: 2521ms
memory: 10732kb
input:
50000 100000 100000 24500 24501 24501 24502 24502 24503 24503 24504 24504 24505 24505 24506 24506 24507 24507 24508 24508 24509 24509 24510 24510 24511 24511 24512 24512 24513 24513 24514 24514 24515 24515 24516 24516 24517 24517 24518 24518 24519 24519 24520 24520 24521 24521 24522 24522 24523 2452...
output:
NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES NO YES...
result:
ok 98000 lines
Test #18:
score: 0
Accepted
time: 2567ms
memory: 10536kb
input:
50000 100000 100000 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES ...
result:
ok 100000 lines
Test #19:
score: 0
Accepted
time: 3602ms
memory: 10476kb
input:
50000 100000 100000 2 4 4 6 6 8 8 10 10 12 12 14 14 16 16 18 18 20 20 22 22 24 24 26 26 28 28 30 30 32 32 34 34 36 36 38 38 40 40 42 42 44 44 46 46 48 48 50 50 52 52 54 54 56 56 58 58 60 60 62 62 64 64 66 66 68 68 70 70 72 72 74 74 76 76 78 78 80 80 82 82 84 84 86 86 88 88 90 90 92 92 94 94 96 96 98...
output:
NO YES YES YES NO NO YES YES YES NO YES YES NO YES YES NO YES NO NO NO NO NO YES YES NO YES NO YES YES YES NO NO YES NO NO NO YES YES YES YES NO YES NO NO YES YES YES NO NO YES YES YES YES NO YES YES NO NO YES YES NO NO YES NO NO NO YES NO NO NO YES NO NO NO YES NO YES NO NO YES YES NO NO YES NO NO ...
result:
ok 100000 lines
Test #20:
score: 0
Accepted
time: 3547ms
memory: 9528kb
input:
50000 100000 100000 3 6 6 9 9 12 12 15 15 18 18 21 21 24 24 27 27 30 30 33 33 36 36 39 39 42 42 45 45 48 48 51 51 54 54 57 57 60 60 63 63 66 66 69 69 72 72 75 75 78 78 81 81 84 84 87 87 90 90 93 93 96 96 99 99 102 102 105 105 108 108 111 111 114 114 117 117 120 120 123 123 126 126 129 129 132 132 13...
output:
YES NO NO NO YES NO YES NO NO NO YES NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO YES NO NO YES NO YES NO NO NO NO NO NO YES YES NO YES YES NO NO YES NO YES NO YES NO NO NO NO YES NO NO YES NO YES YES YES YES NO NO NO NO YES YES NO NO NO YES NO NO NO YES YES NO NO NO YES NO NO NO NO YES NO NO NO...
result:
ok 100000 lines
Test #21:
score: -100
Dangerous Syscalls
input:
5000 10000 10000 4103 3044 1509 4745 3287 2269 1227 1146 3580 1636 4103 1040 1747 4633 1572 1188 4212 2110 633 4726 1390 511 3571 20 3491 1138 332 4118 3445 1002 3848 4285 2373 4520 2276 2638 4003 4209 1647 3074 372 374 4317 202 3969 2571 1459 3606 2006 1859 1985 1755 4443 3420 449 3964 539 2829 347...