首页 > 编程语言 >差分约束算法

差分约束算法

时间:2023-03-03 12:44:06浏览次数:46  
标签:不等式 移项 差分 约束 leq 算法 x2 x1 dis

\[\begin{cases} x_{c_1}-x_{c'_1}\leq y_1 \\x_{c_2}-x_{c'_2} \leq y_2 \\ \cdots\\ x_{c_m} - x_{c'_m}\leq y_m\end{cases} \]

转化为最短距离:
对于任意的一个不等式\(x_1-x_2\leq y\)可以看作从\(x_1\)这个点到\(x_2\)这个点的距离小于等于y,如果对该不等式移项,可以获得\(x_1 \leq x_2 + y\)。那么移项之后的不等式可以理解为以x2为起点x1为终点,这两点之间的距离不能超过y。初始化一个超级源点,该源点到所有的点的距离都是0

if(dis[x1] > dis[x2] + y) dis[x1] = dis[x2] + y;

转化为最长距离:
不等式\(x_1-x_2\leq y\)移项获得\(x_1 - y\leq x_2\),可以理解为从x1到x2之前有权值为-y的边,并且\(dis[x2]\)要大于\(dis[x1] - y\)

      if (dis[x2] < dis[x1] + y) 
        dis[x2] = dis[x1] + y;

标签:不等式,移项,差分,约束,leq,算法,x2,x1,dis
From: https://www.cnblogs.com/GuanStudy/p/17175204.html

相关文章

  • m基于DCAR编码感知的网络路由发现算法matlab仿真
    1.算法描述1.路由请求过程        当一个源节点有数据要向目的节点发送且在当前路由缓存中未发现可用路径时,则启动路由请求过程,下面分步对该过程进行说明: 步......
  • 【算法设计-模拟】进制转换
    目录1.十进制转二进制2.十进制转r进制(2<=r<=37)3.将M进制数X转换为N进制数(2<=M,N<=37)1.十进制转二进制#include<stdio.h>#include<vector>usingnamespacestd;......
  • 负载均衡算法
    负载均衡算法负载均衡器的实现可以分为两个部分:根据负载均衡算法在候选服务器列表选出一个服务器;将请求数据发送到该服务器上。负载均衡算法是负载均衡服务核心中的......
  • 算法随想Day27【回溯算法】| LC332-重新安排行程、LC51-N皇后、LC37-解数独
    LC332.重新安排行程做了很久,还是没有通过全部案例,最后是一个输入为100个元素的数组,运行超出时间限制。LC51.N皇后实现了回溯算法中的超暴力解法,主要是对某个节点的斜......
  • 两数之和 II - 输入有序数组(数据结构和算法两种实现方式)
    题目:给你一个下标从1开始的整数数组numbers,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是numbers[ind......
  • Lin-Canny算法
    求解凸包间的最近点对是计算几何中一个非常有用的算法,经常被用在诸如碰撞检测、物理引擎等图形学相关的领域,而且该算法的效率对于最终整个系统的效能有着相当关键的制约。......
  • 每日算法--2023.3.2
    1.剑指offer46--把数字翻译成字符串classSolution{publicinttranslateNum(intnum){List<Integer>container=newLinkedList<>();while(......
  • 代码随想录算法训练营第二天 | 977. 有序数组的平方、27.移除元素
    LeetCode977.有序数组的平方链接:https://leetcode.cn/problems/squares-of-a-sorted-array/classSolution{public:vector<int>sortedSquares(vector<int>&nu......
  • 【算法设计-查找】查找的相关题目
    目录1.打印极值点下标2.找最小数3.查找4.找位置1.打印极值点下标【描述】在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数......
  • GJK算法计算凸多边形之间的距离
    GJK是空间距离检测算法,是由三位(Gilbert,Johnson,andKeerthi's )作者的首字母组成的代称。GJK算法首先要解决计算Minkowski和的问题。所谓Minkowski和,指A、B两个集......