QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#559702#8220. 众生之门ktq_cpp5 193ms7980kbC++203.6kb2024-09-12 08:32:052024-09-12 08:32:05

Judging History

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

  • [2024-09-12 08:32:05]
  • 评测
  • 测评结果:5
  • 用时:193ms
  • 内存:7980kb
  • [2024-09-12 08:32:05]
  • 提交

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(p[l],p[l+1])^dis(p[r-1],p[r])^dis(p[l-1],p[l])^dis(p[r],p[r+1]);
            swap(p[l],p[r]);
            ans^=dis(p[l],p[l+1])^dis(p[r-1],p[r])^dis(p[l-1],p[l])^dis(p[r],p[r+1]);
        }
        out(ans);
    }
    return;
}
signed main(){
    int T=read();
    while(T--)solve();
    return 0;
}

詳細信息

Subtask #1:

score: 5
Accepted

Test #1:

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

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: 2ms
memory: 7920kb

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: 5792kb

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: 5788kb

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: 3ms
memory: 5788kb

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
Wrong Answer

Dependency #1:

100%
Accepted

Test #6:

score: 0
Wrong Answer
time: 0ms
memory: 7964kb

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:

1100101111010011101001100011000114 1 2 3 5 8 6 7 9 
11010101110111107 1 2 3 4 5 6 8 
111010100010011101111000011101011011

result:

wrong output format Expected integer, but "1100101111010011101001100011000114" found

Subtask #3:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 74ms
memory: 7796kb

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:

11100110010100101011000001010100011000111000100110011000111111111010010111100101010111100101101010001001111000011000111010001011110110110010011101111000000110110011010000014 1 2 3 5 7 8 6 9 
0110011111111000010110111111100010111100001110110011000100111101011110011111000110101111010111011011000101001...

result:

wrong output format Expected integer, but "111001100101001010110000010101...1101111000000110110011010000014" found

Subtask #4:

score: 0
Wrong Answer

Test #18:

score: 0
Wrong Answer
time: 121ms
memory: 5796kb

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:

1011001110001101010011010111101110101000001010101011110010100011000110001011010010011013 1 2 4 5 8 9 7 6 
111101000001011010100100110101011110111101010100000001011011111101100110101011106 1 2 4 5 8 9 7 3 
11001000000010000101001011100110001101101110100100111001111111000110000111111111010101101011111...

result:

wrong output format Expected integer, but "101100111000110101001101011110...0100011000110001011010010011013" found

Subtask #5:

score: 0
Wrong Answer

Test #25:

score: 0
Wrong Answer
time: 193ms
memory: 5888kb

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:

11111111111111111111111113 1 4 5 7 8 6 9 2 
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 2 3 4 5 6 8 7 9 
111111111111111111111111111111111111111111111111111111111111111111111111111111112 3 4...

result:

wrong output format Expected integer, but "11111111111111111111111113" found

Subtask #6:

score: 0
Wrong Answer

Test #34:

score: 0
Wrong Answer
time: 0ms
memory: 7980kb

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:

0111010010

result:

wrong output format Expected integer, but "0111010010" found

Subtask #7:

score: 0
Skipped

Dependency #2:

0%