题解 P5197 【[UASCO19JAN]Grass Planting】
考虑在一个点的父节点,子节点,这个点本身涂不同的颜色。而在这个点的孙节点(或祖节点)可以用同一个颜色集合来涂色。
所以统计每个点的度,找到度最大的点,输出 这个点的度+1。
#include<cstdio>
int x,y,ans,n,deg[100007];
int main() {
scanf("%d",&n);
for(int i=1;i<n;i++) {
scanf("%d%d",&x,&y);
if(++deg[x]>ans)ans=deg[x];
if(++deg[y]>ans)ans=deg[y];
}
printf("%d",ans+1);
return 0;
}