四边形不等式优化
来源:互联网 发布:兰芝淘宝旗舰店 编辑:程序博客网 时间:2024/03/29 01:48
当函数w(i,j)满足 w(a,c)+w(b,d)<=w(b,c)+w(a,d) 且a<=b<c<=d 时,我们称w(i,j)满足四边形不等式。
当函数w(i,j)满足 w(i',j)<=w(i,j')且 i<=i'<j<=j' 时,称w关于关于区间包含关系单调。
s(i,j)=k是指m(i, j)这个状态的最优决策
最优代价d[i,j]=min{d[i,k-1]+d[k+1,j]}+w[i,j]
其中w[i,j]=sum[i,j]
四边形不等式:w[a,c]+w[b,d]<=w[b,c]+w[a,d](a<b<c<d) 就称其满足凸四边形不等式
决策单调性:w[i,j]<=w[i',j'] (i'<=i<j<=j')
于是有以下三个定理
定理一: 如果w[i,j]同时满足四边形不等式 和 决策单调性 ,则d[i,j]也满足四边形不等式
定理二:当定理一的条件满足时,让d[i,j]取最小值的k为s[i,j],则s[i,j-1]<=s[i,j]<=s[i+1,j]
定理三:w为凸当且仅当w[i,j]+w[i+1,j+1]<=w[i+1,j]+w[i,j+1]
由定理三知 判断w是否为凸即判断 w[i,j+1]-w[i,j]的值随着i的增加是否递减
当函数w(i,j)满足 w(i',j)<=w(i,j')且 i<=i'<j<=j' 时,称w关于关于区间包含关系单调。
s(i,j)=k是指m(i, j)这个状态的最优决策
最优代价d[i,j]=min{d[i,k-1]+d[k+1,j]}+w[i,j]
其中w[i,j]=sum[i,j]
四边形不等式:w[a,c]+w[b,d]<=w[b,c]+w[a,d](a<b<c<d) 就称其满足凸四边形不等式
决策单调性:w[i,j]<=w[i',j'] (i'<=i<j<=j')
于是有以下三个定理
定理一: 如果w[i,j]同时满足四边形不等式 和 决策单调性 ,则d[i,j]也满足四边形不等式
定理二:当定理一的条件满足时,让d[i,j]取最小值的k为s[i,j],则s[i,j-1]<=s[i,j]<=s[i+1,j]
定理三:w为凸当且仅当w[i,j]+w[i+1,j+1]<=w[i+1,j]+w[i,j+1]
由定理三知 判断w是否为凸即判断 w[i,j+1]-w[i,j]的值随着i的增加是否递减
于是求k值的时候s[i,j]只和s[i,j-1] 和 s[i+1,j]有关,所以可以以i-j递增为顺序递推各个状态值最终求得结果,将O(n^3)转为O(n^2)
for(int i = 1; i <= n; i++) { dp[i][i] = 0; s[i][i] = i;}for(int l = 1; l < n; l++) { for(int i = 1; i + l <= n; i++) { int j = i + l; dp[i][j] = INF; for(int k = s[i][j - 1]; k <= s[i + 1][j]; k++) { if(dp[i][k] + dp[k + 1][j] + cal(i, j, k) <= dp[i][j]) { dp[i][j] = dp[i][k] + dp[k + 1][j] + cal(i, j, k); s[i][j] = k; } } }}
0 0
- 四边形不等式优化
- POJ1160-四边形不等式优化
- 四边形不等式优化
- 四边形不等式优化DP
- hdu3516 --- 四边形不等式优化
- 四边形不等式优化
- 四边形不等式优化
- ccfcsp201612-四边形不等式优化
- 四边形不等式优化dp
- 四边形不等式dp优化
- 四边形不等式优化dp
- 四边形不等式优化动态规划
- 四边形不等式优化石子合并
- 四边形不等式优化dp-简介
- hdu2829Lawrence DP+四边形不等式优化
- 石子合并 四边形不等式优化
- 四边形不等式优化变态规划
- 石子合并 四边形不等式优化
- 【算法】打乱有序的算法——洗牌算法
- 并查集 模板
- Python命名空间详解ANDpython中的作用域
- 解决yum不能使用方法
- Vulkan编程指南翻译 第四章 队列和命令 第4节 复制图像数据
- 四边形不等式优化
- class属性中间存在空格,到底是什么意思呢?!
- centos64 上安装mysql
- js常见兼容性问题举例包含完整代码
- OpenJudge1.4编程基础之逻辑表达式与条件分支之 03:奇偶数判断
- Codeforces 362B. Petya and Staircases
- jdk1.8中的filter应用
- ubuntu 14.04 LTS软件中心闪退
- Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 解决方案