POJ 1050最大子矩阵和
来源:互联网 发布:阿里云修改登录密码 编辑:程序博客网 时间:2024/05/16 12:01
传送门
题目大意:
最大子矩阵和
分析:
因为刷的是DP列表所以是DP喽(……….这理由给满分>o<)
看到这道题很自然地就会联想到最大连续子序列和,所以这道题的终点就在于怎么把二维转化为一维,一开始我还想搞个什么前缀和之类的东西,然后枚举添加哪个矩阵,后来发现根本行不通,……………..所以最后正确做法是什么呢??我们枚举ij,把i~j行压缩为一个一维序列,然后,就没有然后了
代码如下:
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int maxn=100+5;int n,array[maxn][maxn],sum,ans,lala[maxn];inline int read(void){ char ch=getchar(); int f=1,x=0; while(!(ch>='0'&&ch<='9')){ if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return f*x;}inline void calc(void){ sum=0; for(int i=1;i<=n;i++){ sum+=lala[i]; if(sum>ans) ans=sum; if(sum<0) sum=0; }}signed main(void){ n=read(); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) array[i][j]=read(); ans=0; for(int i=1;i<=n;i++){ memset(lala,0,sizeof(lala)); for(int j=i;j<=n;j++){ for(int k=1;k<=n;k++) lala[k]+=array[j][k]; calc(); } } cout<<ans<<endl; return 0;}
by >o< neighthorn
1 0
- POJ 1050 最大子矩阵和
- poj 1050 【最大子矩阵和DP】
- POJ-1050 最大子矩阵和
- POJ 1050 最大连续子矩阵和
- poj 1050 最大子矩阵和
- poj 1050 最大子矩阵和
- POJ 1050 最大矩阵子段和
- POJ 1050 最大子矩阵和
- poj 1050 最大的子矩阵和
- poj 1050 最大子矩阵和
- POJ 1050最大子矩阵和
- POJ 1050(最大子矩阵和)
- poj 1050 求矩阵最大的子矩阵和 DP
- POJ 1050 最大子矩阵
- poj 1050最大子矩阵
- POJ 1050 求最大子矩阵和 动态规划
- poj 1050 To the Max 最大子矩阵和
- 最大子矩阵和问题 DP poj 1050
- 基于XML配置的SpringMVC项目示例
- android源码解析系列
- #Paper Reading# Nonnegative Sparse PCA
- HTML基础学习之 --网页的宽度、高度自适应
- jQuery CSS操作
- POJ 1050最大子矩阵和
- myeclipse修改编码大全
- NSString的各种修改方法
- android产品研发系列
- 常用串口调试工具比较
- SVN代码管理遇到的坑
- POJ 1091 跳蚤(容斥原理)
- 修改PDF.NET SOD源代码以支持加密的数据库连接字符串
- VS2010编译后控件变暗淡及listcontrol的LVS_EX_DOUBLEBUFFER无效