QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#559393 | #8220. 众生之门 | Idtwtei | 0 | 70ms | 4068kb | C++20 | 2.1kb | 2024-09-11 21:51:05 | 2024-09-11 21:51:06 |
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<=10*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])^fdis(id[y],id[x-1]);
cur^=fdis(id[x],id[x+1])^fdis(id[y],id[x+1]);
cur^=fdis(id[y],id[y-1])^fdis(id[x],id[y-1]);
cur^=fdis(id[y],id[y+1])^fdis(id[x],id[y+1]);
swap(id[x],id[y]);
}
if(cur>1){
for(int i=1;cur>3&&i<=10*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])^fdis(id[y],id[x-1]);
cur^=fdis(id[x],id[x+1])^fdis(id[y],id[x+1]);
cur^=fdis(id[y],id[y-1])^fdis(id[x],id[y-1]);
cur^=fdis(id[y],id[y+1])^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; d_c=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: 0ms
memory: 3888kb
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 2 3 4 1 6 3 1 2 5 4 6 6 2 3 5 4 1 6 4 3 2 5 1 3 2 4 5 6 1 3 1 2 4 3 4 2 5 6 1 3 4 1 5 2 1 3 6 2 5 4 5 2 4 3 6 1 4 2 3 1 2 4 3 1 6 5 1 5 4 2 6 3 3 4 5 2 6 1 2 1 3 6 5 4 3 5 2 1 6 4 5 2 1 4 6 3 1 3 4 2 5 4 3 1 2 3 5 1 2 4 1 3 2 4 3 4 1 2 5 1 3 4 2 5 2 3 4 1 5 2 4 1 6 3 4 6 2...
result:
wrong answer Your solution is worse than Jury's in test case 4. Yours:7 Jury's:1
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 70ms
memory: 3920kb
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 23 25 31 18 9 26 43 15 1 33 39 24 37 5 34 6 35 12 30 21 42 13 16 3 19 20 41 11 17 7 14 28 4 10 40 8 36 32 38 22 29 2 24 1 28 7 19 40 15 3 4 8 22 29 9 30 37 21 16 10 26 25 6 17 14 31 33 36 18 2 34 20 23 35 11 32 5 39 12 27 41 13 38 5 27 2 20 16 3 14 4 17 12 11 19 15 6 21 8 23 24 18 26 1 9 25 7 1...
result:
wrong answer Your solution is worse than Jury's in test case 2. Yours:61 Jury's:1
Subtask #4:
score: 0
Wrong Answer
Test #18:
score: 0
Wrong Answer
time: 59ms
memory: 3856kb
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 5 6 9 15 13 7 2 10 1 8 14 11 12 4 12 4 8 10 1 13 11 7 9 3 6 5 2 3 2 14 8 13 12 7 9 11 1 15 4 10 5 6 5 11 15 4 3 14 1 10 2 9 12 6 8 13 7 10 15 4 12 5 1 13 11 9 2 14 6 3 7 8 11 4 10 2 6 5 7 9 8 1 3 11 2 4 15 7 6 14 13 5 8 12 10 1 3 9 14 8 3 13 6 5 11 1 7 2 4 9 10 12 5 11 1 8 2 4 6 7 9 10 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: 56ms
memory: 3872kb
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 5 6 13 11 3 7 2 10 1 8 12 4 12 7 4 5 2 9 13 11 1 3 8 10 6 10 7 2 11 6 1 5 12 9 3 13 4 8 1 9 6 2 3 5 11 12 8 10 7 4 10 3 6 1 11 5 13 9 8 7 2 4 12 6 10 2 7 13 9 11 5 3 4 1 12 8 1 13 3 10 5 9 6 12 11 4 7 2 8 7 1 6 2 9 4 10 5 8 3 11 5 2 6 9 13 4 7 10 3 8 12 1 4 7 3 2 8 5 9 11 12 13 1 10 6 6 ...
result:
wrong answer Your solution is worse than Jury's in test case 2. Yours:5 Jury's:1
Subtask #6:
score: 0
Wrong Answer
Test #34:
score: 0
Wrong Answer
time: 0ms
memory: 4068kb
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 819 672 238 510 847 149 258 84 642 77 948 40 605 770 886 839 14 273 229 827 210 857 231 926 791 990 269 677 173 504 587 870 325 553 82 420 93 496 2 645 601 421 594 111 283 400 219 895 648 349 253 417 703 743 593 738 795 355 688 945 979 969 9 784 89 398 458 767 221 195 200 961 51 531 171 983 877 ...
result:
wrong answer Your solution is worse than Jury's in test case 5. Yours:78 Jury's:0
Subtask #7:
score: 0
Skipped
Dependency #2:
0%