比赛 集训 评测结果 AAAATTTTTT
题目名称 一无所有 最终得分 40
用户昵称 左清源 运行时间 36.988 s
代码语言 C++ 内存使用 8.12 MiB
提交时间 2025-07-03 11:44:33
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int N=1e5+10;
vector<int>G[N];
int n,d[N];
void add(int x,int y){
	G[x].push_back(y);
}
void dfs(int x,int fa){
	d[x]=1e9;
	if(G[x].size()==1)d[x]=0;
	else{
		for(auto y:G[x]){
			if(y==fa)continue;
			dfs(y,x);
			d[x]=min(d[x],d[y]+1);
		}
	}
}
int DFS(int x,int fa,int dist){
	if(d[x]<=dist)return 1;
	int sum=0;
	for(auto y:G[x])if(y!=fa)sum+=DFS(y,x,dist+1);
	return sum;
}
int main(){
	freopen("nothing.in","r",stdin);
	freopen("nothing.out","w",stdout);
	scanf("%d",&n);
	for(int i=1,u,v;i<n;i++){
		scanf("%d %d",&u,&v);
		add(u,v),add(v,u);
	}
	for(int i=1;i<=n;i++){
		dfs(i,0);
		printf("%d\n",DFS(i,0,0)); 
	}
	return 0;
}