社区讨论

有人能救一下吗,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 条回复,欢迎继续交流。

正在加载回复...