uva 108 Maximum Sum 最大子矩阵和
来源:互联网 发布:淘宝上网 编辑:程序博客网 时间:2024/05/01 18:38
不知道为啥,这样的题目跑到贪心里面去了,动态规矩挺简单,最后之前看了一遍他的问题,所以很容易就敲出来了,贪心暂时告一段落,开始dp,加油,顺便纪念一下这是我的第100篇博客(原创)时间过得可真快,不知不觉
中都这么久了。。。
思路:
最大子矩阵和的问题可以通过最大字段和的问题解出来,普通的暴力枚举是枚举行和列,时间复杂度为m^2*n^2,但
是我们可以在行的上界和下界确定的情况下将这个矩阵压缩为一个一维数组存起来,然后利用最大字段和的求解解出
来,代码应该很容易就能看懂,如果对动态规划有所了解的话。
贴代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<vector>#include<set>#include<string>#include<algorithm>#define MIN -0x7fffffffusing namespace std;int gra[105][105];int b[105];int maxsum(int n){int sum=MIN,temp=0;for(int i=1; i<=n; i++){if(temp>0)temp += b[i];elsetemp = b[i];if(temp > sum)sum = temp;}return sum;}int main(){int n,MAX,sum,i,j,k;while(cin >> n){for(i=1; i<=n; i++)for(j=1; j<=n; j++)cin >> gra[i][j];MAX = MIN;for(i=1; i<=n; i++){for(k=1; k<=n; k++)b[k] = 0;for(j=i; j<=n; j++){for(k=1; k<=n; k++)b[k] += gra[j][k];sum = maxsum(n);if(sum > MAX)MAX = sum;}}cout << MAX << endl;}return 0;}
0 0
- UVA 108 Maximum Sum (最大子矩阵和) POJ 1050
- UVA 108 Maximum Sum(子矩阵最大和)
- UVA 108 Maximum Sum 最大连续子矩阵和
- UVa 108 Maximum Sum (贪心&最大子矩阵和)
- uva 108 Maximum Sum 最大子矩阵和
- UVA - 108 Maximum Sum(最大子矩阵和)
- UVA - 108 Maximum Sum 求子矩阵的最大和
- uva 108 Maximum Sum 最大子矩阵和
- UVA 108 Maximum Sum 最大连续子矩阵和
- UVa 108 - Maximum Sum (最大子矩阵)
- UVa 10827 Maximum sum on a torus (贪心&矩阵环中的最大子矩阵和)
- UVA - 10827 Maximum sum on a torus(dp最大子矩阵和)
- UVA 10827 Maximum sum on a torus(环面上的最大子矩阵和)
- 最大子矩阵和 submatrix with maximum sum
- URAL 1146. Maximum Sum(求最大子矩阵和)
- uva108 - - Maximum Sum (最大连续子矩阵和)
- UVA - 10827 Maximum sum on a torus 求循环矩阵的最大子矩阵
- URAL 1146 Maximum Sum (最大子矩阵)
- 关于storyboard和xib的小Tips
- java基础知识:java方法传参机制
- KMP简单应用
- 虚方法 oc
- 见证奇迹的时刻 70平老房重新焕发魅力
- uva 108 Maximum Sum 最大子矩阵和
- 102Binary Tree Level Order Traversal (java)
- light oj 1013 LCS 应用
- 类成员函数指针
- 网上处方药物手册Rxlist 及其药学信息资源
- 使用mybatis开发原始dao
- 仿qq未读消息
- 深入理解JVM性能调优
- XPath语法