社区讨论
有人能救一下吗,40pts
P11962[GESP202503 六级] 树上漫步参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mliwulyn
- 此快照首次捕获于
- 2026/02/12 11:40 上周
- 此快照最后确认于
- 2026/02/12 13:30 上周
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,a[200005],b[200005],vis[200005],ans[200005],cnt;
void dfs(int x,int sd){
if(vis[x]==1){
return ;
}
if(sd%2==0){
ans[x]=1;
cnt++;
}
vis[x]=1;
for(int i=1;i<n;i++){
if(a[i]==x){
dfs(b[i],sd+1);
}
else if(b[i]==x){
dfs(a[i],sd+1);
}
}
}
int main(){
cin>>n;
for(int i=1;i<n;i++){
cin>>a[i]>>b[i];
}
dfs(1,0);
for(int i=1;i<=n;i++){
if(ans[i]==1){
cout<<cnt<<' ';
}
else{
cout<<n-cnt<<' ';
}
}
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...