差分约束系统 AND 最小表示法

差分约束与最小表示法
本文介绍差分约束法解决不等式条件问题的方法,包括构建图模型、使用Bell-man或SPFA算法搜索最短路径,以及如何处理负权环情况。此外,还讨论了最小表示法的应用,用于消除重复解,特别以八皇后问题为例,展示了如何通过定义状态的大小关系来找到唯一的最小表示。

差分约束法:
在题目中给出不等式条件,然后让我们求符合这些条件的值。
我们可以把所有的元素转换为图的顶点,把不等式的右边变为权值,构建一个图。
如:
v1 - v2 <= c
也就是说 v1 <= c + v2
即添加由v2指向v1的边   权值为c
给一个顶点赋一个初值,然后以其为起点,对图做最小路径的搜索。
一个顶点从起点到他的最短路径一定是满足所有条件的。
注意:c可能是负数( Bell-man,SPFA ),当有负值环的时候无解。
有时候题目没有直接给我们不等式,但是有条件。而这些条件等够转换成不等式。
最小表示法:
有些状态可以有一些规则的变化
如八皇后问题解,有的解是一样的,通过翻转,旋转之类的操作之后能得到一样的解。
而我们定义一个判断状态大小的条件。
不妨设为( p1 > p2 <=> ( x1 > x2 || (x1==x2 且 y1 > y2 ) ) (以八皇后为题)
八皇后问题的解保存为一些列的点{(x1,y1),(x2,y2).....}
集合间的大小判断规则如字符串的大小判断   点的大小判断是上面提到的。
这样  同过转换规则和大小判断规则。我们能够找出所有相同集合中最小的一个。
然后对每个解都进行求最小表示的操作,把它于之前所求的最小表示比较。如果一样,则这两种状态是一样的,舍弃。
如果不同,那么保存其表示,做为一种新的解。
在有些题目中,我们可以采用”偏矩形“的方法构建最小表示。即规定 长>宽
这样  我们在构建最小表示的时候 能够减少判断的次数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值