欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF115A.Party
Party
题目描述
一家公司有 名员工,编号从 到 。每位员工要么没有直属经理,要么有且仅有一位直属经理,这位经理是另一位编号不同的员工。若满足以下至少一条,则称员工 是员工 的上级:
- 员工 是员工 的直属经理;
- 员工 有一位直属经理 ,且员工 是员工 的上级。
公司中不会出现管理层级的环路。也就是说,不存在某位员工是其直属经理的上级。
今天公司要举办一场聚会,需要将所有 名员工分成若干组:每位员工必须且只能属于一组。此外,在同一组内,不能存在两位员工 和 ,使得 是 的上级。
请问,最少需要分成多少组?
输入格式
第一行包含一个整数 (),表示员工人数。
接下来的 行,每行包含一个整数 ( 或 )。每个 表示第 位员工的直属经理编号。如果 ,表示第 位员工没有直属经理。
保证没有员工是自己的直属经理(即 ),且不会出现管理层级的环路。
输出格式
输出一个整数,表示聚会分组的最小组数。
说明/提示
对于第一个样例,三组就足够了,例如:
- 员工 1
- 员工 2 和 4
- 员工 3 和 5
由 ChatGPT 4.1 翻译
样例
5
-1
1
2
1
-1
3
在线编程 IDE
建议全屏模式获得最佳体验
键盘快捷键
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |
第 1 行,第 1 列
0 字符
-
最近自测结果
暂未运行
最近递交结果
暂无递交记录