欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1572A.Book
Book
题目描述
有一本包含 个章节的书。
每个章节都有一个指定的前置章节列表,要理解该章节,必须先理解这些前置章节。为了理解一个章节,你需要在理解其所需列表中的所有章节之后,再阅读它。
目前你还没有理解任何章节。你将从头到尾反复阅读这本书,直到你理解整本书为止。注意,如果在某一时刻阅读某个章节时,你尚未理解其所需的某些前置章节,那么你仍然不会理解该章节。
请确定为了理解所有章节,你需要将这本书读多少遍;或者确定无论读多少遍,你都无法理解所有章节。
输入
每个测试包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的第一行包含一个整数 ()—— 章节数。
接下来 行,第 行以整数 ()开头 —— 要理解第 章所需的前置章节数量。然后跟着 个整数 (,,且 时 )—— 理解第 章所需的前置章节编号。
保证所有测试用例的 之和以及所有 之和均不超过 。
输出
对于每个测试用例,如果整本书能够被理解,则输出需要阅读的次数;否则输出 。
说明
- 在第一个样例中,第一次阅读时我们会理解第 、 章,第二次阅读时理解第 、 章。
- 在第二个样例中,每一章都需要理解另一章,因此无法理解整本书。
- 在第三个样例中,每一章都只需要理解书中出现得更早的章节,因此我们可以一次阅读就理解所有内容。
- 在第四个样例中,第一次阅读时会理解第 、、 章,第二次阅读时理解第 章。
- 在第五个样例中,从第 章到第 章,每次阅读只会理解一章。
样例
5
4
1 2
0
2 1 4
1 2
5
1 5
1 1
1 2
1 3
1 4
5
0
0
2 1 2
1 2
2 2 1
4
2 2 3
0
0
2 3 2
5
1 2
1 3
1 4
1 5
0
2
-1
1
2
5
在线编程 IDE
建议全屏模式获得最佳体验
键盘快捷键
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |
第 1 行,第 1 列
0 字符
-
最近自测结果
暂未运行
最近递交结果
暂无递交记录