Codeforces 115A- Party
2015-08-05 16:01
573 查看
A. Party
time limit per test
3 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
A company has n employees numbered from 1 to n.
Each employee either has no immediate manager or exactly one immediate manager, who is another employee with a different number. An employee A is
said to be the superior of another employee B if at least one of
the following is true:
Employee A is the immediate manager of employee B
Employee B has an immediate manager employee C such
that employee A is the superior of employee C.
The company will not have a managerial cycle. That is, there will not exist an employee who is the superior of his/her own immediate manager.
Today the company is going to arrange a party. This involves dividing all n employees into several groups: every employee must belong
to exactly one group. Furthermore, within any single group, there must not be two employees A and B such
that A is the superior of B.
What is the minimum number of groups that must be formed?
Input
The first line contains integer n (1 ≤ n ≤ 2000)
— the number of employees.
The next n lines contain the integers pi (1 ≤ pi ≤ n or pi = -1).
Every pi denotes
the immediate manager for the i-th employee. If pi is
-1, that means that the i-th employee does not have an immediate manager.
It is guaranteed, that no employee will be the immediate manager of him/herself (pi ≠ i).
Also, there will be no managerial cycles.
Output
Print a single integer denoting the minimum number of groups that will be formed in the party.
Sample test(s)
input
output
Note
For the first example, three groups are sufficient, for example:
Employee 1
Employees 2 and 4
Employees 3 and 5
题意:求数的最大深度
time limit per test
3 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
A company has n employees numbered from 1 to n.
Each employee either has no immediate manager or exactly one immediate manager, who is another employee with a different number. An employee A is
said to be the superior of another employee B if at least one of
the following is true:
Employee A is the immediate manager of employee B
Employee B has an immediate manager employee C such
that employee A is the superior of employee C.
The company will not have a managerial cycle. That is, there will not exist an employee who is the superior of his/her own immediate manager.
Today the company is going to arrange a party. This involves dividing all n employees into several groups: every employee must belong
to exactly one group. Furthermore, within any single group, there must not be two employees A and B such
that A is the superior of B.
What is the minimum number of groups that must be formed?
Input
The first line contains integer n (1 ≤ n ≤ 2000)
— the number of employees.
The next n lines contain the integers pi (1 ≤ pi ≤ n or pi = -1).
Every pi denotes
the immediate manager for the i-th employee. If pi is
-1, that means that the i-th employee does not have an immediate manager.
It is guaranteed, that no employee will be the immediate manager of him/herself (pi ≠ i).
Also, there will be no managerial cycles.
Output
Print a single integer denoting the minimum number of groups that will be formed in the party.
Sample test(s)
input
5 -1 1 2 1 -1
output
3
Note
For the first example, three groups are sufficient, for example:
Employee 1
Employees 2 and 4
Employees 3 and 5
题意:求数的最大深度
#include <cstdio> #include <iostream> #include <cstdlib> #include <algorithm> #include <ctime> #include <cmath> #include <string> #include <cstring> #include <stack> #include <queue> #include <list> #include <vector> #include <map> #include <set> using namespace std; typedef long long LL; const int INF=0x3f3f3f3f; const double eps=1e-10; const double PI=acos(-1.0); int n,a[2010],ans,tem; void dfs(int u) { tem++; if(a[u]==-1) return ; dfs(a[u]); } void solve() { ans=-INF; for(int i=1;i<=n;i++) { tem=0; dfs(i); ans=max(ans,tem); } printf("%d\n",ans); } int main() { while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) scanf("%d",a+i); solve(); } return 0; }
相关文章推荐
- python eval函数 动态执行python语句
- python中的字典详细介绍
- bundle install 老是中断,可以在gemfile里面把source换成taobao源,可以自动安装
- 上拉页面自动加载
- 全民消消乐电信SDK对接
- Linux IO实时监控iostat命令详解
- 学习日记8.5
- 关于命令行参数
- 生成framework ,脚本
- 求位数 hdu 1018 Big Number
- android 读取本地大图片时防止oom方法
- linux下vi的复制,黏贴,删除,撤销,跳转等命令-费元星
- 如何安装虚拟机VMware
- zoj 3135 Party of 8g 最大点权独立集
- linux epoll事件模型详解(转载)
- 杭电acm 2504又见GCD
- DP ACdream 喵哈哈村的挑衅
- android 自定义ScrollView实现背景图片伸缩(阻尼效果)
- ios基础-字符串和数组的block遍历
- LeetCode之Binary Tree Inorder Traversal