zoukankan      html  css  js  c++  java
  • 差分约束系统学习笔记

    注意!
    差分约束系统有两种方式可以求解,最短路和最长路。当我们把不等式整理成d[a]+w<=d[b]时,我们求最长路。整理成d[a]+w>=d[b]时,我们求最短路。当求最短路时,我们通常要把各点距离初始化为正无穷,求最短路,把各点距离逐渐减小,直到符合所有不等式。也就是开始 各点不符合条件,后来通过减小变得符合了,所以一定是符合条件的最大值。既然是求最大值,并且是减小各点距离,也就是把各点由数轴的右侧向左侧拉,所以我 们一定要选择一个最终在数轴最左侧的点,并初始化为0,把所有正无穷的点拉近到符合不等式。最长路同理。

    题目中说要求最小的话,那么我们要跑最长路;若求最大的,那么我们要跑最短路。具体的证明上面的博客也有叙述,这里大体说下:就是求最小时,我们跑最长路,假如跑完后还有更小的,那么在跑最长路时一定还会对其进行松弛,使其变得更大,所以我们跑完最长路后,一定不会还存在更小的了。求最大的也同样的道理。
    (皆为他人所言)

  • 相关阅读:
    C#表示空字符串
    char varchar nvarchar区别
    WCF 服务器端 上传图片
    各种算法时间复杂度
    ADO.net 对象
    走出浮躁的泥沼
    英语学习
    前端获取GridView和ASPxGridView单元格中的值
    【dfs+染色】【HDOJ】5652 India and China Origins
    【模拟】【codeforces】599B Spongebob and Joke
  • 原文地址:https://www.cnblogs.com/fpjo/p/13770243.html
Copyright © 2011-2022 走看看