QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#559359 | #8220. 众生之门 | Idtwtei | 0 | 85ms | 8008kb | C++20 | 2.1kb | 2024-09-11 21:36:14 | 2024-09-11 21:36:15 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
const int N=5e4+100,B=16;
mt19937 rnd(time(0));
#define gc getchar()
#define rd read()
inline int read(){
int x=0,f=0; char c=gc;
for(;c<'0'||c>'9';c=gc) f|=(c=='-');
for(;c>='0'&&c<='9';c=gc) x=(x<<1)+(x<<3)+(c^48);
return f?-x:x;
}
int n,s,t,id[N];
vector<int> G[N];
int dep[N],dfn[N],d_c=0,st[N][B+5];
inline int get(int x,int y){ return dfn[x]<dfn[y]?x:y; }
void dfs0(int u,int fu){
st[dfn[u]=++d_c][0]=fu,dep[u]=dep[fu]+1;
for(int v:G[u]) if(v!=fu) dfs0(v,u);
}
inline void init(){ for(int k=1;k<=B;++k) for(int i=1;i+(1<<k)-1<=n;++i) st[i][k]=get(st[i][k-1],st[i+(1<<(k-1))][k-1]); }
inline int flca(int x,int y){ if((x=dfn[x])==(y=dfn[y])) return x; if(x>y) swap(x,y); int k=__lg(y-(++x)+1); return get(st[x][k],st[y+1-(1<<k)][k]); }
inline int fdis(int x,int y){ return dep[x]+dep[y]-2*dep[flca(x,y)]; }
void solve(){
n=rd,s=rd,t=rd;
for(int i=1,x,y;i<n;++i) x=rd,y=rd,G[x].pb(y),G[y].pb(x);
dfs0(1,0),init();
for(int i=1;i<=n;++i) id[i]=i;
shuffle(id+1,id+n+1,rnd);
for(int i=2;i<=n;++i) if(id[i]==s) swap(id[1],id[i]);
for(int i=1;i<n;++i) if(id[i]==t) swap(id[n],id[i]);
int cur=0; for(int i=1;i<n;++i) cur^=fdis(id[i],id[i+1]);
for(int i=1;cur>1&&i<=200*n;++i){
int x=rnd()%n+1,y=rnd()%n+1; if(x==1||x==n||y==1||y==n) continue;
cur^=fdis(id[x],id[x-1]),cur^=fdis(id[y],id[x-1]);
cur^=fdis(id[x],id[x+1]),cur^=fdis(id[y],id[x+1]);
cur^=fdis(id[y],id[y-1]),cur^=fdis(id[x],id[y-1]);
cur^=fdis(id[y],id[y+1]),cur^=fdis(id[x],id[y+1]);
swap(id[x],id[y]);
}
if(cur>1){
for(int i=1;cur>3&&i<=200*n;++i){
int x=rnd()%n+1,y=rnd()%n+1; if(x==1||x==n||y==1||y==n) continue;
cur^=fdis(id[x],id[x-1]),cur^=fdis(id[y],id[x-1]);
cur^=fdis(id[x],id[x+1]),cur^=fdis(id[y],id[x+1]);
cur^=fdis(id[y],id[y-1]),cur^=fdis(id[x],id[y-1]);
cur^=fdis(id[y],id[y+1]),cur^=fdis(id[x],id[y+1]);
swap(id[x],id[y]);
}
}
for(int i=1;i<=n;++i) printf("%d ", id[i]); puts("");
for(int i=1;i<=n;++i) G[i]={},dfn[i]=0;
}
int main(){
int T=rd;
while(T--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3964kb
input:
114 6 5 6 2 6 1 6 4 5 3 1 6 4 6 3 6 2 4 4 1 6 4 1 5 5 3 6 6 1 5 2 1 2 4 6 2 4 3 2 6 6 1 3 6 5 3 1 6 4 2 2 5 6 3 1 5 3 2 4 1 5 4 3 6 3 4 3 4 2 3 1 4 4 3 6 3 1 2 3 6 3 4 3 1 6 5 1 5 3 2 1 2 4 2 2 3 5 2 6 1 4 2 1 5 2 4 1 6 2 3 6 6 5 1 4 2 6 5 1 3 2 6 3 2 4 4 1 2 4 3 4 1 4 6 2 5 3 5 4 6 1 4 6 2 5 4 6 1 ...
output:
5 4 2 3 1 6 3 4 1 5 2 6 6 3 5 4 2 1 6 5 4 2 3 1 3 6 2 4 5 1 3 2 1 4 3 5 6 2 4 1 3 5 1 4 2 1 6 2 5 3 4 5 2 4 3 6 1 4 3 2 1 2 4 6 3 1 5 1 4 6 2 5 3 3 4 2 6 5 1 2 5 1 3 6 4 3 6 5 1 2 4 5 4 2 6 1 3 1 2 3 4 5 4 1 3 2 3 5 2 1 4 1 2 3 4 3 4 1 2 5 3 4 1 2 5 4 2 3 1 5 2 1 4 6 3 4 6 2...
result:
wrong answer Your solution is worse than Jury's in test case 2. Yours:2 Jury's:0
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 85ms
memory: 8008kb
input:
14190 43 27 2 42 3 30 36 11 24 21 22 13 8 22 30 31 29 35 1 10 6 2 23 28 17 2 26 7 37 5 19 38 43 33 39 4 28 33 7 25 31 15 1 32 18 34 27 35 12 19 32 20 17 37 42 26 34 39 10 12 27 24 43 18 6 16 9 38 9 14 15 14 41 25 3 40 13 16 8 36 41 20 5 21 40 11 29 41 24 38 21 6 20 14 26 1 6 7 17 16 39 36 8 18 36 11...
output:
27 29 7 23 25 19 22 12 6 11 8 1 37 17 34 5 10 40 21 36 35 41 28 39 32 18 20 9 31 24 26 43 33 13 38 14 3 30 16 42 15 4 2 24 12 39 33 29 26 34 36 23 5 17 18 40 14 7 28 16 10 19 1 8 6 2 3 21 35 11 37 32 25 9 15 20 13 41 30 27 31 4 22 38 5 21 19 20 24 27 16 18 11 8 6 25 17 14 1 15 12 23 9 4 13 10 3 7 ...
result:
wrong answer Your solution is worse than Jury's in test case 1. Yours:29 Jury's:1
Subtask #4:
score: 0
Wrong Answer
Test #18:
score: 0
Wrong Answer
time: 69ms
memory: 7956kb
input:
32752 15 3 4 14 12 4 12 1 10 9 13 7 6 12 5 1 12 9 15 7 9 8 12 2 6 11 6 9 3 6 10 13 12 2 10 11 10 5 1 4 12 11 4 6 2 13 6 5 9 6 8 13 6 3 4 8 13 7 15 3 6 15 10 4 2 8 5 10 3 1 3 15 2 8 4 12 9 7 8 11 8 6 13 8 12 14 8 6 12 15 5 7 8 14 10 13 11 13 13 5 2 14 15 8 15 1 6 2 7 15 9 13 15 3 6 13 15 4 12 5 15 10...
output:
3 15 8 9 13 2 5 12 6 11 7 1 10 14 4 12 1 11 13 8 9 5 6 10 7 4 3 2 3 11 15 9 10 2 1 8 12 5 14 7 4 13 6 5 6 4 8 11 3 12 1 15 13 14 10 2 9 7 10 9 2 7 15 1 3 5 13 4 12 11 14 6 8 11 2 7 8 9 1 10 6 4 5 3 11 4 10 14 1 8 13 7 6 3 12 15 5 2 9 14 7 8 9 10 6 13 2 5 3 1 11 4 12 5 6 8 1 2 4 10 11 9 7 3 ...
result:
wrong answer Your solution is worse than Jury's in test case 2. Yours:4 Jury's:0
Subtask #5:
score: 0
Wrong Answer
Test #25:
score: 0
Wrong Answer
time: 67ms
memory: 7952kb
input:
36059 13 9 4 5 9 10 3 3 1 13 5 12 5 7 4 2 8 8 10 4 9 11 7 6 11 1 4 13 12 6 4 12 13 9 11 2 6 12 9 12 8 5 7 6 5 3 3 7 10 8 1 5 2 10 13 10 8 3 1 5 9 4 8 6 11 7 13 13 5 1 10 12 13 9 4 11 9 2 11 8 10 12 1 4 9 2 2 12 3 2 12 11 8 2 7 4 5 1 4 1 11 7 10 9 6 9 13 10 12 7 5 11 9 12 10 9 8 3 10 8 5 4 13 13 7 6 ...
output:
9 10 2 7 13 6 12 5 3 11 8 1 4 12 3 4 2 10 7 13 8 9 1 5 11 6 10 4 12 9 6 13 11 1 7 3 2 5 8 1 10 12 11 7 5 3 2 9 8 6 4 10 8 9 5 1 13 3 7 4 2 11 6 12 6 10 1 13 2 3 9 5 11 4 7 12 8 1 12 11 9 4 13 6 2 7 3 10 5 8 7 9 6 8 4 5 10 2 1 3 11 7 13 9 6 12 8 3 4 2 5 10 1 4 8 11 7 1 2 5 10 3 9 12 13 6 6 ...
result:
wrong answer Your solution is worse than Jury's in test case 2. Yours:11 Jury's:1
Subtask #6:
score: 0
Wrong Answer
Test #34:
score: 0
Wrong Answer
time: 2ms
memory: 6372kb
input:
10 1000 165 244 175 661 738 362 280 462 776 922 231 578 963 615 639 836 32 418 519 220 565 733 239 951 768 847 196 200 246 119 591 288 994 586 313 46 971 515 512 811 228 908 627 339 33 337 447 488 616 319 399 727 921 615 421 509 167 354 905 382 20 356 875 414 619 904 824 940 435 244 953 663 719 962 ...
output:
165 271 843 802 768 408 808 305 916 920 829 285 627 286 1 546 438 20 944 388 680 751 33 316 245 528 746 827 289 611 7 48 930 910 788 781 579 494 517 914 146 114 692 300 830 615 924 504 733 946 921 487 63 518 618 321 719 370 468 65 435 775 502 445 274 497 19 550 371 820 217 663 18 207 191 766 818 36 ...
result:
wrong answer Your solution is worse than Jury's in test case 2. Yours:59 Jury's:1
Subtask #7:
score: 0
Skipped
Dependency #2:
0%