1051 最大子矩阵和
来源:互联网 发布:java的编程思想是什么 编辑:程序博客网 时间:2024/06/18 11:55
题目链接:
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1051
题解:
一道很好的思维题,主要是将二维的数组压缩称为一维的数组,然后就按常规的做法就行了。(这里有一个坑点,这里的输入的时候,是m在前,n在后的。)
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,sizeof(a))#define inf 0x3f3f3f3fconst int maxn = 500+10;int mp[maxn][maxn];int dp[maxn][maxn];int main(){ int n,m; while(scanf("%d%d",&m,&n)!=EOF) { met(mp,0); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { int num; scanf("%d",&num); mp[i][j]=mp[i-1][j]+num; }// 将二维的压缩称为一维的。 int sum=0; for(int i=1;i<=n;i++) for(int j=i;j<=n;j++)// 枚举一维数组,类似于线段树的思想。 { int ans=0; for(int k=1;k<=m;k++) { ans+=mp[j][k]-mp[i-1][k]; if(ans<0) ans=0; else sum=max(ans,sum); } } printf("%d\n",max(sum,0)); }}
0 0
- 1051 最大子矩阵和
- 1051 最大子矩阵和
- 1051 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大子矩阵和
- 最大矩阵子和
- 最大子矩阵和
- 最大子矩阵和
- 最大和子矩阵
- 最大和子矩阵
- 最大子矩阵和
- ROS系统架构
- L1-002. 打印沙漏
- 1028. 人口普查(20)
- Android广播机制(下)
- 整数拆段(枚举,DP)(AOJ 847)
- 1051 最大子矩阵和
- 第十一周
- L1-003. 个位数统计
- Effective OC之熟悉Objective-C
- HDU5489-Removed Interval(LIS变形)
- C++作业6
- 写给自己的寄语
- 浮点数注意事项
- tomcat 开启nio