排队打饭

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

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

update 2024.5.27

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

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

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

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

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

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

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

update 2024.8.16

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

posted @   最爱丁珰  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示