蓝桥杯 最大子阵 (DP)
来源:互联网 发布:浏览器不支持java插件 编辑:程序博客网 时间:2024/06/14 09:09
历届试题 最大子阵
时间限制:1.0s 内存限制:256.0MB
问题描述
给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。
其中,A的子矩阵指在A中行和列均连续的一块。
其中,A的子矩阵指在A中行和列均连续的一块。
输入格式
输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。
接下来n行,每行m个整数,表示矩阵A。
接下来n行,每行m个整数,表示矩阵A。
输出格式
输出一行,包含一个整数,表示A中最大的子矩阵中的元素和。
样例输入
3 3
-1 -4 3
3 4 -1
-5 -2 8
-1 -4 3
3 4 -1
-5 -2 8
样例输出
10
样例说明
取最后一列,和为10。
数据规模和约定
对于50%的数据,1<=n, m<=50;
对于100%的数据,1<=n, m<=500,A中每个元素的绝对值不超过5000。
对于100%的数据,1<=n, m<=500,A中每个元素的绝对值不超过5000。
#include<stdio.h>#include<string.h>#define MAX(a,b) (a>b?a:b)#include<algorithm>using namespace std;int map[510][510];int n,m,mm;void find(int x){int t=0,i,j;for(i=1;i<=m;i++){if(t>0)t+=map[x][i];elset=map[x][i];mm=MAX(mm,t);}}int main(){int t,i,j,k;while(scanf("%d%d",&n,&m)!=EOF){memset(map,0,sizeof(map));for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%d",&map[i][j]);}}mm=map[1][1];for(i=1;i<=n;i++){find(i);for(j=i+1;j<=n;j++){for(k=1;k<=m;k++){map[i][k]+=map[j][k];}find(i);}}printf("%d\n",mm);}return 0;}
1 0
- 蓝桥杯 最大子阵(dp最大子段和)
- 蓝桥杯 最大子阵 (DP)
- 最大子阵(dp)
- 蓝桥杯 - 历届试题 - PREV-26 - 最大子阵 (最大子矩阵和,dp)
- 蓝桥杯 最大子阵 dp (类最大连续子段和)
- 蓝桥杯 -- 历届试题 最大子阵 【DP】
- 【二维DP】最大子阵
- 最大子阵和(DP)&& Hdu 1003 && Hdu 1081
- [DP/构造]最大全0子阵
- Hdu 最大连续子序列(DP)
- hdu 1559 最大子矩阵(DP)
- hdu 4328 最大子矩阵(DP)
- uvaLA 3029 最大子矩阵(DP)
- maxsum(dp求最大子矩阵)
- 最大子矩阵和(dp)
- HDU1231最大连续子序列(dp)
- 最大连续子序列(DP)
- HDU 1559 最大子矩阵 (DP)
- 剖析软件外包项目
- Android四大组件之Activity
- C#中如何判断一个文件是否存在
- Xcode7.x中安装Alcatraz
- alartdialog edittext不弹出输入法
- 蓝桥杯 最大子阵 (DP)
- easypr车牌识别开源项目学习(一)
- Linux内核tag分析
- jsp/jstl引擎1.0.1.2发布
- Implement strStr()
- Tomcat 设置系统登录用户
- css样式优先级
- firefox火狐书签windows和ubuntu无法同步问题
- PYTHON 奇怪现象 记录下 WindowsError: [Error 2]