poj 1050 求子矩阵之和 动态规划
2013-06-05 10:09
204 查看
To the Max
求最大子矩阵和的时候,思路是取出两行i,j,,把这两行之间同一列的都加起来形成另外一个数组,求这个数组的最大子段和,求出来的这个和,就是这两行之间高度为i-j的子矩阵中最大的和.
求最大子矩阵和的时候,思路是取出两行i,j,,把这两行之间同一列的都加起来形成另外一个数组,求这个数组的最大子段和,求出来的这个和,就是这两行之间高度为i-j的子矩阵中最大的和.
#include <iostream> #include <cstring> using namespace std; #define size 110 int a[size][size], b[size]; int main() { // freopen("in.txt", "r", stdin); int n, i, j, k, max = -0xfffff; cin>>n; for(i = 0; i < n; i++){ for(j = 0; j < n; j++) cin>>a[i][j]; } for(i = 0; i < n; i++){ memset(b, 0, sizeof(b)); //数组b表示i, j行对应列元素的和 for(j = i; j < n; j++){ int sum = 0; for(k = 0; k < n; k++){ b[k] += a[j][k]; //b[k]为i到j行第k列的和 sum += b[k]; //sum为横向的和 if(sum > max) max = sum; if(sum < 0) sum = 0; } } } cout<<max<<endl; return 0; }
相关文章推荐
- POJ 1050/ ZOJ 1074:To the Max - DP求子矩阵和
- poj1050 动态规划 求二维数组中子矩阵和的最大值
- poj 1050 To the Max 二维矩阵转换一维求子序列最大值
- POJ-1050 动态规划 子矩阵最大值,二位转一维处理
- POJ 1050 To the Max(最大字矩阵)【模板】
- poj 1050 To the Max(动态规划处理二维最大子段和)
- 动态规划练习题:POJ 1050
- Poj 1050 动态规划
- POJ 1050 To the Max -- 动态规划
- POJ 1050 To the Max(动态规划、最大子矩阵和)
- POJ 1050 二维动态规划转变成枚举加一维的动态规划!
- poj 动态规划之1050 To the Max
- POJ 1050 To the Max -- 动态规划
- poj 1050--动态规划
- poj 1050 To the Max(最大子矩阵之和)
- POJ 1050 动态规划水题
- poj 1050 To the Max(最大子矩阵之和)
- [ACM_动态规划] POJ 1050 To the Max ( 动态规划 二维 最大连续和 最大子矩阵)
- poj 1050 To the Max(最大子矩阵之和,基础DP题)
- poj1050 二维数组最大子序列矩阵和