QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#559679#8220. 众生之门ktq_cpp5 5ms7932kbC++203.6kb2024-09-12 08:20:592024-09-12 08:21:01

Judging History

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

  • [2024-09-12 08:21:01]
  • 评测
  • 测评结果:5
  • 用时:5ms
  • 内存:7932kb
  • [2024-09-12 08:20:59]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define ull unsigned long long
#define repe(i,l,r) for(int (i)=l;(i)<=r;(i)++)
#define rep(i,n) for(int (i)=1;(i)<=n;(i)++)
#define FOR(i,r,l) for(int (i)=r;(i)>=l;(i)--)
#define INF 0x3f3f3f
#define pii pair<int,int>
#define mpr make_pair
#define pb push_back
#define ALL(v) (v).begin(),(v).end()
#define rsort(v) sort(ALL(v),greater<int>())
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
using namespace std;
int read(){int sum=0,f=1;char c;c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){sum=(sum<<1)+(sum<<3)+(c-'0');c=getchar();}return sum*f;}
void out(int x){if(x<0){x=-x;putchar('-');}if(x>=10)out(x/10);putchar(x%10+'0');}
template <typename T>void die(T s){cout<<s<<endl;exit(0);}
int fast(int a,int b,int P){int res=1;if(P<=0){while(b){if(b&1)res=res*a;a=a*a;b>>=1;}}else{while(b){if(b&1)res=res*a%P;a=a*a%P;b>>=1;}}return res;}
template <typename T>void chkmax(T& a,T b){if(a<b)a=b;return;}
template <typename T>void chkmin(T& a,T b){if(a>b)a=b;return;}
int n,s,t;
const int N=5e4+5;
vector<int> G[N];
namespace LCA{
    int dfn[N],mi[21][N],cnt,dep[N];
    int get(int x,int y){return dfn[x]<dfn[y]? x:y;}
    void dfs(int u,int fa){
        mi[0][dfn[u]=++cnt]=fa;
        dep[u]=dep[fa]+1;
        for(auto v:G[u]){
            if(v==fa)continue;
            dfs(v,u);
        }
        return;
    }
    void init(){
        cnt=0;
        dfs(1,0);
        //cerr<<mi[0][2]<<' '<<dfn[2]<<endl;
        for(int j=1;(1<<j)<=n;j++){
            for(int i=1;i+(1<<j)-1<=n;i++){
                mi[j][i]=get(mi[j-1][i],mi[j-1][i+(1<<j-1)]);
            }
        }
    }
    int lca(int u,int v){
        if(u==v)return u;
        u=dfn[u],v=dfn[v];
        if(u>v)swap(u,v);
        int len=__lg(v-u++);
        return get(mi[len][u],mi[len][v-(1<<len)+1]);
    }
    int dis(int u,int v){
        return dep[u]+dep[v]-dep[lca(u,v)]*2;
    }
}
using namespace LCA;
bool all(){
    rep(i,n)if(G[i].size()==n-1)return true;
    return false;
}
int p[N];
int nd[N],ans;
mt19937_64 rnd(time(0));
int rd(int l,int r){
    return rnd()%(r-l+1)+l;
}
int calc(){
    int res=0;
    rep(i,n-1){
        res^=dis(p[i],p[i+1]);
    }
    return res;
}
void solve(){
    n=read(),s=read(),t=read();
    rep(i,n)G[i].clear();
    rep(i,n-1){
        int u=read(),v=read();
        G[u].pb(v);
        G[v].pb(u);
    }
    LCA::init();
    p[1]=s,p[n]=t;
    repe(i,1,n)if(i!=s&&i!=t)p[i-(i>s)-(i>t)+1]=i;
    if(all()){
        rep(i,n)cout<<p[i]<<' ';
        puts("");
        return;
    }
    else if(n<=9){
        ans=10;
        //cerr<<lca(1,5)<<endl;
        do{
            int res=0;
            for(int i=1;i<n;i++){
                res^=dis(p[i],p[i+1]);
            }
            //cerr<<res<<endl;
            if(res<ans){
                rep(i,n)nd[i]=p[i];
                ans=res;
            }
        }while(next_permutation(p+2,p+n));
        //cerr<<ans<<endl;
        rep(i,n)cout<<nd[i]<<' ';
        puts("");
        return;
    }
    else{
        ans=calc();
        for(;ans>1;){
            int l=rd(2,n-2),r=rd(l+1,n-1);
            ans^=dis(l,l+1)^dis(r-1,r)^dis(l-1,l)^(r,r+1);
            swap(p[l],p[r]);
            ans^=dis(l,l+1)^dis(r-1,r)^dis(l-1,l)^(r,r+1);
        }
        out(ans);
    }
    return;
}
signed main(){
    int T=read();
    while(T--)solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 1ms
memory: 5752kb

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 1 2 3 4 6 
3 1 2 4 5 6 
6 2 3 4 5 1 
6 2 5 4 3 1 
3 2 4 5 6 1 
3 1 2 4 
3 6 2 5 4 1 
3 1 4 5 2 
1 2 3 5 6 4 
5 2 3 4 6 1 
4 2 3 1 
2 1 3 4 6 5 
1 2 6 5 4 3 
3 4 5 2 6 1 
2 1 3 6 5 4 
3 1 2 5 6 4 
5 1 4 2 6 3 
1 3 2 4 5 
4 1 3 2 
3 1 2 5 4 
1 3 2 4 
3 4 1 2 
5 1 3 4 2 
5 2 4 3 1 
5 1 2 6 4 3 
4 2 6...

result:

ok Answer correct!

Test #2:

score: 5
Accepted
time: 1ms
memory: 5740kb

input:

157
7 3 7
1 3
4 5
6 5
2 5
5 1
7 2
7 7 6
5 6
3 6
2 6
6 7
1 7
4 3
7 6 1
7 4
4 6
2 3
1 2
3 6
5 1
6 1 5
2 5
6 2
5 1
3 2
4 2
5 3 1
1 3
5 3
2 5
4 5
7 4 2
1 5
2 6
6 3
5 4
7 5
3 1
7 1 5
6 1
2 6
5 1
7 6
3 1
4 6
7 5 7
6 5
4 7
7 6
2 3
3 7
1 4
7 6 7
4 7
5 4
7 1
3 6
2 1
1 3
6 5 1
2 4
6 5
4 6
3 2
1 5
7 1 5
2 6
6 ...

output:

3 1 2 4 6 5 7 
7 1 2 4 5 3 6 
6 2 3 5 4 7 1 
1 2 3 4 6 5 
3 2 5 4 1 
4 1 5 3 6 7 2 
1 2 3 4 6 7 5 
5 1 2 3 4 6 7 
6 1 2 3 4 5 7 
5 2 4 3 6 1 
1 2 3 7 6 4 5 
4 1 2 6 7 5 3 
7 2 3 4 5 6 1 
4 1 3 5 6 7 2 
7 1 2 3 5 6 4 
5 1 2 3 7 4 6 
3 2 5 1 4 6 
4 2 1 3 5 6 
1 2 3 4 5 6 
3 1 4 2 7 6 5 
1 2 3 6 4 7 5 ...

result:

ok Answer correct!

Test #3:

score: 5
Accepted
time: 5ms
memory: 7932kb

input:

136
8 2 1
3 4
6 1
1 8
7 8
4 8
5 8
8 2
7 5 4
2 4
4 5
3 6
7 5
6 1
1 5
8 7 1
5 6
6 8
8 7
2 3
4 3
1 8
3 1
6 2 3
1 5
5 3
6 5
4 5
3 2
7 5 3
6 1
1 4
4 7
2 3
3 6
7 5
8 7 2
2 3
6 2
1 7
4 1
5 4
8 4
3 8
8 7 3
6 7
5 4
4 7
8 1
3 8
1 5
2 7
7 5 2
3 4
7 3
6 4
1 5
2 5
4 2
7 2 3
3 5
1 5
5 2
7 2
4 2
6 1
8 3 7
2 8
7 8
...

output:

2 3 4 5 6 7 8 1 
5 1 2 6 3 7 4 
7 2 3 4 5 6 8 1 
2 5 1 4 6 3 
5 1 2 4 6 7 3 
7 1 3 4 5 8 6 2 
7 1 2 4 8 5 6 3 
5 1 4 3 6 7 2 
2 1 4 7 5 6 3 
3 1 2 4 5 8 6 7 
3 1 4 6 7 5 8 2 
4 2 3 5 7 8 6 1 
1 2 5 6 4 3 
8 1 2 3 7 6 5 4 
6 2 3 4 5 7 1 
6 2 3 4 5 7 1 
5 1 2 4 8 7 6 3 
1 2 3 4 5 6 
1 2 4 5 3 
2 1 3 4...

result:

ok Answer correct!

Test #4:

score: 5
Accepted
time: 2ms
memory: 5816kb

input:

204
7 6 7
1 6
2 5
7 1
2 3
5 1
4 6
2 2 1
1 2
2 1 2
2 1
4 3 4
1 2
2 3
2 4
2 2 1
2 1
3 2 1
3 1
1 2
8 4 3
5 2
5 4
1 3
8 7
1 5
6 8
5 7
3 2 3
2 3
2 1
6 3 5
1 6
4 5
1 2
3 2
2 5
8 2 1
7 6
3 5
8 6
8 4
3 4
7 2
1 3
7 5 6
3 7
4 1
6 2
5 3
7 1
7 6
3 2 1
3 1
1 2
8 3 2
4 3
2 5
2 4
1 8
1 6
1 2
5 7
4 1 2
4 3
4 2
1 4
...

output:

6 1 2 3 5 4 7 
2 1 
1 2 
3 1 2 4 
2 1 
2 3 1 
4 1 2 5 6 8 7 3 
2 1 3 
3 2 6 1 4 5 
2 3 4 5 7 6 8 1 
5 1 2 7 4 3 6 
2 3 1 
3 1 4 6 7 8 5 2 
1 3 4 2 
2 1 
4 1 5 3 2 7 6 
2 1 4 3 5 
2 1 4 3 
4 1 2 5 7 6 8 3 
6 1 2 3 4 7 5 8 
3 1 2 
6 1 2 3 5 4 
2 1 
6 1 3 4 5 7 2 
2 1 
3 1 2 
2 3 1 
2 1 
5 1 2 4 7 8 6 ...

result:

ok Answer correct!

Test #5:

score: 5
Accepted
time: 0ms
memory: 5816kb

input:

204
6 4 6
5 1
4 1
2 4
5 6
3 5
7 7 1
3 2
2 6
7 5
1 2
3 4
5 4
7 2 1
5 6
7 3
3 2
1 3
5 1
4 5
8 3 7
5 8
1 2
8 7
8 1
5 3
6 8
5 4
8 6 1
2 4
6 3
7 4
4 6
8 1
1 7
6 5
3 3 2
3 2
1 2
8 8 5
5 8
2 3
2 6
4 3
7 2
3 1
8 3
4 4 3
4 3
2 1
3 2
8 6 1
3 4
4 7
4 6
8 2
8 1
6 1
6 5
7 4 7
3 1
4 6
5 2
6 7
2 4
1 4
7 2 1
1 7
4 ...

output:

4 1 5 3 2 6 
7 2 3 6 4 5 1 
2 3 4 6 5 7 1 
3 1 2 5 4 8 6 7 
6 2 3 4 5 7 8 1 
3 1 2 
8 1 2 3 6 7 4 5 
4 2 1 3 
6 2 3 4 5 8 7 1 
4 1 3 2 5 6 7 
2 3 4 5 6 7 1 
1 3 2 
8 1 2 3 5 6 4 7 
1 3 2 
3 2 4 5 1 
2 3 1 
5 1 2 6 7 4 3 
2 1 
2 3 1 4 5 
3 1 4 5 2 6 
4 1 2 3 6 5 7 8 
2 3 1 
2 1 3 
7 1 3 4 5 8 6 2 
3 ...

result:

ok Answer correct!

Subtask #2:

score: 0
Time Limit Exceeded

Dependency #1:

100%
Accepted

Test #6:

score: 0
Time Limit Exceeded

input:

87
12 3 7
8 6
12 11
9 10
2 9
5 6
4 9
7 3
11 4
10 7
6 11
1 6
12 5 8
12 9
8 5
7 5
9 5
4 9
10 9
6 8
2 7
11 2
1 2
3 5
12 7 4
8 10
4 6
2 6
9 7
12 9
11 5
1 7
6 12
5 12
3 11
10 2
12 2 5
11 12
10 7
1 9
8 3
7 1
6 9
12 9
4 6
5 7
9 2
3 12
12 10 7
6 4
4 9
5 11
9 10
11 4
1 4
7 4
2 11
12 9
8 10
3 4
12 12 2
8 1
7 ...

output:


result:


Subtask #3:

score: 0
Time Limit Exceeded

Test #11:

score: 0
Time Limit Exceeded

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:


result:


Subtask #4:

score: 0
Time Limit Exceeded

Test #18:

score: 0
Time Limit Exceeded

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:


result:


Subtask #5:

score: 0
Time Limit Exceeded

Test #25:

score: 0
Time Limit Exceeded

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:


result:


Subtask #6:

score: 0
Time Limit Exceeded

Test #34:

score: 0
Time Limit Exceeded

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:


result:


Subtask #7:

score: 0
Skipped

Dependency #2:

0%