欢迎光临
我们一直在努力

题解 洛谷 Luogu P1113 杂务 图论 BFS C++

题目

传送门

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 呢?

必须完成所有前置工作才能入队 5

即当队头 x 通

赞(0)
未经允许不得转载:171主机测评 » 题解 洛谷 Luogu P1113 杂务 图论 BFS C++
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址