差分约束算法

{xc1xc1y1xc2xc2y2xcmxcmym

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

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

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

if (dis[x2] < dis[x1] + y)
dis[x2] = dis[x1] + y;
posted @   管管19  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示