QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#822645#9911. 路南柯zjy0001100 ✓10ms3576kbC++171.6kb2024-12-20 15:13:282024-12-20 15:13:29

Judging History

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

  • [2024-12-20 15:13:29]
  • 评测
  • 测评结果:100
  • 用时:10ms
  • 内存:3576kb
  • [2024-12-20 15:13:28]
  • 提交

answer

#include<bits/stdc++.h>
#define LL long long
#define LLL __int128
#define uint unsigned
#define ldb long double
#define uLL unsigned long long
using namespace std;
const int N=105;
int n;
int deg[N];
vector<int>G[N];
vector<vector<int>>ans;
inline void dfs(int u,int fa){
    if(fa)G[u].erase(find(G[u].begin(),G[u].end(),fa)),G[u].insert(G[u].begin(),fa);
    for(auto v:G[u])if(v!=fa)dfs(v,u);
    ans.back().emplace_back(u);
}
inline void MAIN(){
    cin>>n,ans.clear();
    for(int i=1;i<=n;++i)G[i].clear();
    for(int i=1;i<n;++i){
        int u,v;cin>>u>>v;
        G[u].emplace_back(v);
        G[v].emplace_back(u);
    }
    if(n<3)return cout<<"0\n",void();
    for(int i=1;i<=n;++i)
        if(G[i].size()==n-1){
            cout<<"2\n";
            for(int j:G[i])cout<<j<<' ';cout<<i<<'\n';
            reverse(G[i].begin(),G[i].end());
            for(int j:G[i])cout<<j<<' ';cout<<i<<'\n';
            return;
        }
        else{
            deg[i]=G[i].size();
            sort(G[i].begin(),G[i].end(),[&](int x,int y){
                return G[x].size()>G[y].size();
            });
        }
    for(int i=1;i<=n;++i)if(G[i].size()==1)--deg[G[i][0]],deg[i]=0;
    for(int i=1;i<=n;++i)if(deg[i]==1){
        ans.emplace_back(),dfs(i,0);
        if(ans.size()==1)for(int j=1;j<=n;++j)reverse(G[j].begin()+1,G[j].end());
    }
    cout<<ans.size()<<'\n';
    for(auto vec:ans){
        for(int i:vec)cout<<i<<' ';
        cout<<'\n';
    }
}
signed main(){
    cin.tie(0)->sync_with_stdio(0);
    int t=1;cin>>t;while(t--)MAIN();
    return 0;
}
/*

*/

詳細信息

Subtask #1:

score: 20
Accepted

Test #1:

score: 20
Accepted
time: 0ms
memory: 3520kb

input:

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

output:

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

result:

ok Answer correct!

Subtask #2:

score: 80
Accepted

Test #2:

score: 80
Accepted
time: 10ms
memory: 3576kb

input:

100
100
90 19
79 98
23 34
50 41
31 52
61 19
50 30
49 5
95 65
22 44
72 89
49 77
27 7
48 2
28 25
56 12
97 63
98 43
10 4
50 33
12 13
54 16
100 43
23 69
53 5
56 85
39 6
64 92
100 59
2 71
44 29
59 97
64 39
75 53
59 89
16 35
67 16
6 43
38 51
36 22
58 70
3 29
9 61
99 11
49 95
27 72
73 89
23 3
14 3
61 57
26...

output:

15
51 38 65 95 94 28 25 77 49 63 62 97 76 91 88 40 37 84 20 26 92 64 66 39 31 52 71 2 48 54 67 78 16 35 93 24 6 47 45 79 98 43 100 59 7 27 72 89 82 57 9 61 19 90 42 73 69 80 87 15 34 60 23 81 21 14 3 58 8 70 1 13 12 85 56 96 74 32 18 11 99 55 86 46 83 30 41 50 33 29 68 44 17 36 22 5 53 75 10 4 
10 4...

result:

ok Answer correct!