Codeforces 115A Party

来源:互联网 发布:3d游戏编程大师技巧 编辑:程序博客网 时间:2024/05/17 01:38

题意:

给你每个人的上级,并且一个人和他的所有上级都不能在一个party中(这点是根据题目给出的两点推导出来的),问最少需要几个party。

思路:

并查集,找一个集合中层级数最多的就是最少需要的party数量。

#include<cstdio>#include<algorithm>using namespace std;const int MAX=2005;int p[MAX];int Find(int i){if(p[i]==-1) return 1;else return Find(p[i])+1;}int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&p[i]);}int ans=0;for(int i=1;i<=n;i++){int tmp=Find(i);ans=max(ans,tmp);}printf("%d\n",ans);return 0;}


0 0
原创粉丝点击