【动态规划】[POJ 1050]To the Max
2015-06-19 13:17
281 查看
就是最大矩阵和,如果直接爆搜复杂度就是O(n4)O(n^4)的所以进行优化,sum[i][j][k]表示在第i列到第j列的第k行的和,那么就枚举i, j然后最大子段和,然后就变成O(n3)O(n^3)了, 反正n只有100就过了
[code]#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 100; int sum[MAXN+10][MAXN+10][MAXN+10], dp[MAXN+10]; int main(){ int n; scanf("%d", &n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d", &sum[j][j][i]); int ans = 0; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++){ for(int k=1;k<=n;k++) sum[i][j][k] = sum[i][j-1][k]+sum[j][j][k]; for(int k=1;k<=n;k++) ans = max(ans, (dp[k] = (dp[k-1]<0?sum[i][j][k]:dp[k-1]+sum[i][j][k]))); } printf("%d\n", ans); return 0; }
相关文章推荐
- A × B problem
- Android文件下载(实现断点续传)
- Visual Studio 内置快速生产代码简写集合
- ArrayList-VS-LinkedList
- TCP/IP协议及首部初了解
- 2009年SAT阅读真题文章类型
- OpenGL 顶点缓存对象
- 注释转换
- hadoop学习笔记(六)——hadoop2.5.2全分布模式实现的部署
- OpenGL 顶点缓存对象
- iOS定义自己的回报button(它不影响返回手势)
- PHP隐藏控件作用
- 数据结构 二叉树大部分操作的实现
- Android图片与旋转
- php JSON数据格式化方法
- OpenGL顶点数组
- RFID-RC522速成教程(基于msp430单片机的程序讲解)
- OpenGL顶点数组
- 北大OJ_1006题:生理周期
- todo