[JSOI2008]Blue Mary的旅行

[**[JSOI2008]Blue Mary的旅行**](https://www.luogu.org/problem/P4400)

#### 题解:

看见这些人流动的过程,我们很容易想到网络流,看见最早到达时间,~~我们很容易想到费用流~~。

我们可以看出题目中所说的z对应着网络流中的容量,但是一天过后又重新可以使用这一条边,我们显然不能直接跑网络流,对于一个人,它的贡献为$1$,所以这道题可以转化为一个最大流的模型.

考虑整个问题,朝贪心的方面去想,要尽量的选择一条$s$到$t$的最短路径,选择s到t的最短路径,不会使答案更差,但是选完这一条路后,仍然可以选这一条路,此时被选过的最短路径可能会劣于$s$到$t$的另一条路径,因为花费了$1$单位的时间,考虑去掉时间的限制,我们可以二分答案.

对于二分的$mid$,可以将最短路径在$mid$时间里的所有贡献累加到答案里,现在要考虑如何找到这么一条最短路径。考虑$dinic$的过程,每一次找到一个分层图,分层图的性质可以$s$到$t$的任意一条路径都相同且在原图中最短,每一次求出的最大流就是一次所能达到$t$的最大人数。由于在分层图中都是最短路,则选择都可以是答案不会更差,将这一些人在$mid$时间内的贡献累加值答案。

上一篇:机器学习开端中的PCA算法解析——python


下一篇:[模板][李超线段树][JSOI 2008] Blue Mary开公司