题目
传送门
P1113 杂务 - 洛谷 | 计算机科学教育新生态https://www.luogu.com.cn/problem/P1113
思路
从工作之间的指向性关系不难看出这是基于有向图的问题
边从前置工作通向后置工作,表示完成了前置任务后才能完成后置工作
再模拟这个过程,可以发现这个过程非常像搜索,且更像 BFS
前置工作少的大致在更先搜到的层,前置工作多的大致在更后搜到的层
设 dist[i] 为从开始搜索一直到完成工作 i 所需的时间
t[i] 为完成工作 i 本身需要的时间,若 x 通向 y,则 dist[y] = dist[x] + t[y]
dist[i] 的最大值就是所求答案
但这和一般的 BFS 又不一样
以输入样例为例,2 为队头时,不能直接入队 2 通向的 5,因为 4 也通向 5
入队条件
那我们不禁要想,什么时候才能入队 5 呢?
必须