Description
给你一棵树N个点,N-1条边
现在希望对所有边进行染色
要求是:对于任一点,与之相连的边,必须所染的色各不相同
问至少需要几种色彩。
Format
Input
第一行给出数字N 接下来N行,描述这个树
N<=1e5
Output
如题
Samples
输入数据 1
3
1 2
2 3
输出数据 1
2
思路:
统计每个点的度,再求最大值即可
代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,du[10000001],ans;
signed main()
{
cin>>n;
for(int i = 1; i < n; i++)
{
int u,v;
cin>>u>>v;
du[u]++;
du[v]++;
}
for(int i = 1; i <= n; i++) ans = max(du[i],ans);
cout<<ans;
return 0;
}
该问题是一个图论中的经典算法题,给定一棵有N个节点的树,每条边染色需保证每个节点的所有邻接边颜色不同,求最少需要多少种颜色。解决方案是统计每个节点的度数,然后找出最大度数,因为这是需要的颜色种类的最大可能值。
2077

被折叠的 条评论
为什么被折叠?



