1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=2e5+10; vector<int> g[N]; int cnt[N],st[N]; void dfs(int u,int fa,int c) { st[u]=c;//表示u的点的状态 cnt[c]++; for(auto j:g[u]) { if(j==fa) continue; dfs(j,u,c^1);//奇偶状态互换 } } int main() { int n; cin>>n; for(int i=1;i<n;i++) { int a,b; cin>>a>>b; g[a].push_back(b); g[b].push_back(a); } dfs(1,-1,0); for(int i=1;i<=n;i++) { cout<<cnt[st[i]]<<" "; } return 0; }
Information
- ID
- 2569
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 4
- Accepted
- 2
- Uploaded By