QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#823252#9911. 路南柯hewanying100 ✓10ms3840kbC++141.3kb2024-12-20 20:57:592024-12-20 20:58:01

Judging History

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

  • [2024-12-20 20:58:01]
  • 评测
  • 测评结果:100
  • 用时:10ms
  • 内存:3840kb
  • [2024-12-20 20:57:59]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define pb push_back

const int N=105;
int n,deg[N];
vector<int> G[N];
vector<vector<int> > ans;

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().pb(u);
}

void SOLVE(){
  cin>>n,ans.clear();
  for(int i=1;i<=n;i++) G[i].clear(),deg[i]=0;

  for(int i=1,u,v;i<n;i++) cin>>u>>v,G[u].pb(v),G[v].pb(u);
  if(n<3) return cout<<"0\n",void(); 
  
  for(int i=1;i<=n;i++){
    if((int)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;
    }
    deg[i]+=(int)G[i].size();
    if((int)G[i].size()==1) --deg[G[i][0]],deg[i]=0;
    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(deg[i]==1){
    ans.pb({}),dfs(i,0);
    if((int)ans.size()==1) for(int j=1;j<=n;j++) reverse(G[j].begin()+1,G[j].end());
  }
  
  cout<<(int)ans.size()<<'\n';
  for(auto i:ans){
    for(auto j:i) cout<<j<<' ';
    cout<<'\n';
  }
}

int main(){
  ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  int _;cin>>_;
  while(_--) SOLVE();
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 20
Accepted

Test #1:

score: 20
Accepted
time: 1ms
memory: 3588kb

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

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!