排队打饭

然而,我并不是很看得懂这个证明。。。

这个感觉跟上一道题目的区别,上一道题目新建了一个源点,就可以让所有未知数的值不大于\(A\),然而这道题目不行,只是也能让所有未知数的值达到可能的最大值

update 2024.5.27

总算给我弄明白这个最大最小到底是什么个意思了

首先注意不等式关系具有传递性

我们先按建立了超级源点\(0\)的情况来讨论,假设接下来新添加的不等式形如\(d_x\leq d_0\)

我们首先求出从超级源点出发到每个点的最短路数组\(d\),那么\(d\)显然就是一种合法的解(根据最短路的三角不等式收敛可以知道所有不等式组都满足)

那么对于某个点\(x\),是否存在一组解,使得\(d_x\)小于这组解中\(x\)的值呢(从而\(d_x\)就不是最接近\(d_0\)的解了)?

答案是不可能,因为不等式关系具有传递性,现在已经求出最短路\(d_x\)了,也就是说通过给出的不等式已经可以推导(比如有\(x_1≤x_0+1,x_2≤x_1+1\),那么有\(x_2≤x_0+2\))出\(x\)的值一定要小于等于(因为这是最短路)\(d_x\)(换一种理解方法:相当于从\(0\)走到\(x\)的最短路径,对路径的每一个点进行合并,最后有\(d_x=d_0+l\),其中\(l\)为这条路径的长度,那么对于任意一组解,由于这组解满足所有不等式,所以把这组解放在图上,就是每条边都满足松弛不等式,于是从\(0\)走到\(x\)的最短路径进行松弛不等式的合并,最后有\(x\)的值小于等于\(x_0+l=d_x\)),这是必要的,所以当然不存在任何一组解的\(x\)的值大于\(d_x\);根据\(x\)的任意性,我们可以知道对于任意的\(x\),我们所求出来的这组解就是所有可能的解中,\(x\)能取得的靠近\(d_0\)的最大值,由于所有\(x\)同时取的最大值,当然所有\(x\)的和也就最大了

所以上一道题目也就可以理解了,这一道题目也是一样的,我们要\(d_n-d_1\)最大,也就是\(d_n≤d_1+ans\),所以以\(1\)为起点跑最短路(如果\(d_n\)为无穷,也就是说\(1\)到不了\(n\),那么\(d_n\)肯定就可以无限大,这也刚好与\(d_n\)为无穷对应);所以不是每一道题目都要建立超级源点

update 2024.8.16

所以通过最短路求出来的\(d\)数组不是不超过起点且尽可能大的一组解,而是与起点差值(不是差的绝对值)尽可能大的一组解(即可以超过起点,而且起点可以不为的值\(0\)),只不过由于上一道题目通过超级源点新添加了不等式,新的不等式的常数都是\(0\),而且超级源点的值也是\(0\),于是可以推导出是不超过超级源点且尽量大的解

posted @ 2024-02-09 20:29  最爱丁珰  阅读(8)  评论(0)    收藏  举报