poj 1191
来源:互联网 发布:网页禁止注入js脚本 编辑:程序博客网 时间:2024/06/05 04:24
继续黑书上的DP题~
难得的一道中文题啊...
这里题意就不说啦
最后题目理解外加公式转化,就变成了:求8*8的矩形进行n次分割后每一块的平方和的最小值。
看黑书上的讲解,觉得递归就可以解决的。。。
后面码代码的时候发现,这不正好可以直接写成记忆化搜索嘛~
用dp[k][i][j][k][g] 表示分割进行到k次时,矩形的左上角的坐标为(i,j)到右下角的坐标为(k,g)时的最小值
所以每次都对矩形的长和宽进行枚举:
dp[k][i][j][k][g]=min(dp(k-1,i,j,a,g)+sum[a+1][j][k][g] , dp(k-1,a+1,j,k,g)+sum[i][j][a][g]); (i<=a<=k)
dp[k][i][j][k][g]=min(dp(k-1,i,j,k,b)+sum[i][b+1][k][g] ,dp(k-1,i,b+1,k,g)+sum[i][j][k][b] ); (j<=b<=g)
这样就可以求出dp[k][i][j][k][g];
每个状态都被dp数组记录下来了,这样在每次的递归调用中,如果这个状态已经被更新过,那么就不需要继续向下求值了,而是直接用dp数组记录的值即可。
- poj 1191
- POJ 1191
- poj 1191
- POJ 1191
- POJ 1191
- poj-1191
- poj 1191
- POJ 1191棋盘分割
- poj 1191 普通dp
- poj 1191 棋盘分割
- Poj 1191 棋盘分割
- poj 1191 棋盘分割
- POJ 1191 棋盘分割
- poj 1191棋盘分割
- poj 1191 dp经典
- poj 1191 搜索+剪枝
- poj 1191 棋盘分割
- POJ-1191-棋盘分割
- java this 用法
- virtualbox识别U盘的问题
- 字节那些事儿
- C++ 用libcurl库进行http通讯网络编程
- Windows 8 各个版本区别对比
- poj 1191
- jquery bind 带参数函数 自动执行
- \tutorial_code\core\discrete_fourier_transform
- java properties属性列表说明
- FZU 1920 Left Mouse Button 解题报告
- Android Web App官方文档翻译第二章:屏幕适配
- 关于js datetime的那点事
- Cost Based Optimizer - Common Misconceptions and Issues
- new/delete 和malloc/free 的区别