对于差分约束系统的一些理解
来源:互联网 发布:韩国网络直播间 编辑:程序博客网 时间:2024/05/17 23:52
【1】最短路如何建图?
差分约束系统是{di-dj<=u}的集合,
考虑将di-dj<=u变形为dj+u>=di,
∴结点i要满足所有的结点j的dj+u>=di,
那么必须至少取到min(dj+u),如果取得更大,就会矛盾。
于是这样就可以建最短路,求出一组取值。
【2】这组取值有什么意义?
它通过最短路得到。
刚好满足了所有条件,约束得最紧密。
也就是说,它不唯一,任意的di可能可以更小,相对差就会变大。
【2】这组取值的一个性质:可以平移
简略的证明:∵dj+u>=di,设dj'=dj+a,∴dj+a+u>=di+a即dj'+u>=di'.
【3】松弛操作次数上限为n-1。
描述性证明:最短路径最多有n-1条边。迭代松弛操作,实际上就是按顶点距离s的层次,逐层生成这棵最短路径树的过程,最短路径树最多n-1层。
【4】结点初始取值
设虚拟结点0,从0到任意结点i连一条边,设其权值为0,然后做最短路。
现在问题来了:为什么这样是成立的?
上网找什么资料都不讲究正确性,直接给出做法。
现在其实是多给了n组d0+0>=di的不等式,要证明 加了这么多组和没加这些 的解的存在性不受改变。
∵出现矛盾只能是出现了负权回路。
∴即证明通过加了0结点出现了负权回路。
由于0只连出去,不连回来,∴负权回路上必然没有0结点。
∴假如现在有负权回路,那么原来一定也有负权回路。
不过注意,加了0的限制条件,所得到的解就不一定是最优解了。
例如,对于差分约束系统d1-d2>=-3。
首先建立结点1,2,建边(1,2,3)。
然后建立结点0,连接(0,1,0),(0,2,0)。
求出的值d1=d2=0。
【5】如何求出一组最小正整数解(非负整数解,etc.)
每个联通块是互相约束的。
先用并查集求联通块,然后每块平移。
差分约束系统是{di-dj<=u}的集合,
考虑将di-dj<=u变形为dj+u>=di,
∴结点i要满足所有的结点j的dj+u>=di,
那么必须至少取到min(dj+u),如果取得更大,就会矛盾。
于是这样就可以建最短路,求出一组取值。
【2】这组取值有什么意义?
它通过最短路得到。
刚好满足了所有条件,约束得最紧密。
也就是说,它不唯一,任意的di可能可以更小,相对差就会变大。
【2】这组取值的一个性质:可以平移
简略的证明:∵dj+u>=di,设dj'=dj+a,∴dj+a+u>=di+a即dj'+u>=di'.
【3】松弛操作次数上限为n-1。
描述性证明:最短路径最多有n-1条边。迭代松弛操作,实际上就是按顶点距离s的层次,逐层生成这棵最短路径树的过程,最短路径树最多n-1层。
【4】结点初始取值
设虚拟结点0,从0到任意结点i连一条边,设其权值为0,然后做最短路。
现在问题来了:为什么这样是成立的?
上网找什么资料都不讲究正确性,直接给出做法。
现在其实是多给了n组d0+0>=di的不等式,要证明 加了这么多组和没加这些 的解的存在性不受改变。
∵出现矛盾只能是出现了负权回路。
∴即证明通过加了0结点出现了负权回路。
由于0只连出去,不连回来,∴负权回路上必然没有0结点。
∴假如现在有负权回路,那么原来一定也有负权回路。
不过注意,加了0的限制条件,所得到的解就不一定是最优解了。
例如,对于差分约束系统d1-d2>=-3。
首先建立结点1,2,建边(1,2,3)。
然后建立结点0,连接(0,1,0),(0,2,0)。
求出的值d1=d2=0。
【5】如何求出一组最小正整数解(非负整数解,etc.)
每个联通块是互相约束的。
先用并查集求联通块,然后每块平移。
0 0
- 对于差分约束系统的一些理解
- 关于差分约束系统的再理解
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 【差分约束系统】
- 差分约束系统
- 差分约束系统
- 差分约束系统
- ##差分约束系统##
- 差分约束系统
- 差分约束系统
- 差分约束系统
- jquery中对动态生成的标签不会响应click事件
- java生成txt
- block的声明及使用(基础)
- LeetCode | Reverse Words in a String
- Android应用知识架构清单
- 对于差分约束系统的一些理解
- 上海天伦医院黑吗?黑不黑?收费黑吗?
- 国际化
- leetcode 099 —— Recover Binary Search Tree
- java实现文件上传与下载
- IT牛博客:送给想成为下一个牛人的你
- (8) 分页
- Serializable序列化
- iOS 加载xib文件