P5470. 推理模型分批约束
场次:2026年9月18日-非AI方向 · 来源:CodeFun2000 P5470
题目描述
一次偏复杂的推理会拉起若干模型,每一份都对应一个整型编号(若份数是 ,编号便是 )。各模型可能有先后约束:前一份产出会作为后一份的入口,这些约束登记在表 中。
已知模型份数 以及约束表 。第 条若写作 ,意思是编号 必须等编号 先结束,也就是 要排到 前面。
请把这次推理里的模型切成若干波次来跑;同一波次内彼此没有先后约束,因此允许同时开工。请给出最少要切几波,才能让全部模型都跑完。
下面这 份模型的先后约束可以当作例子:
4
/ \
1 5
/ \
2 3
编号 与 都要等 结束,编号 与 都要等 结束。于是先跑 ,再让 、 同时跑,最后让 、 同时跑,合计 波。
注意:
1、各模型保证不会形成环形等待。
限制范围:
输入格式
:整数,模型份数。
:整数,先后约束一共有几条。
随后给出 行,每一行两个模型编号,用来标明这一对谁先谁后。
输出格式
一个整数,即最少要安排的波次数。
示例
示例 1
输入:
6 5
2 1
2 5
1 4
5 4
3 6
输出:
3
说明:
一共 份模型。先后约束是: 等 , 等 , 等 也等 , 等 。
可按 安排:第一波同时跑 与 ,第二波同时跑 、、,第三波跑 。最少 波。
示例 2
输入:
5 4
5 3
3 2
2 1
1 4
输出:
5
说明:
一共 份模型。先后约束是: 等 , 等 , 等 , 等 。只能沿 依次开跑,需要 波。