思维题…其实可以很容易想到要覆盖,类似于大星星覆盖小的,所以入度最多的点的入度+1就是答案
#include <iostream>
#define MAXN 500005
using namespace std;
int N;
int deg[MAXN],ans;
int main()
{
int i, j, k;
cin>>N;
for(i=1;i<=N-1;i++)
{
int x, y;
cin>>x>>y;
deg[x]++;
deg[y]++;
ans=max(ans,max(deg[x]+1,deg[y]+1));
}
cout<<ans<<endl;
}
博客讨论思维题,提到解题思路是类似大星星覆盖小的进行覆盖,得出入度最多的点的入度加1就是答案。
263

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



