poj解题报告——1050
来源:互联网 发布:简单的c语言程序文件 编辑:程序博客网 时间:2024/05/30 22:59
在一维情况下最大连续子段和的求法是从左到有顺序扫描数据,以0为边界,当累加和小于0时则重置为0.动态规划的状态转移方程为s=max{si-1+ai,ai},该方程和前面的描述是等价的。本题是对一维最大子段和的扩展,思路是从上到下找出所有的连续行(如第i行到第j行),然后计算每列从第i行到第j行的和,之后对这n个列的和进行一维最大子段和的计算,并找出最大的值。
#include<stdio.h>#define MAX 101int main(){int n,i,j,k;int a[MAX][MAX]={0};int colsum[MAX][MAX]={0};int max=0,sum;scanf("%d",&n);for(i=0;i<n;i++)for(j=1;j<=n;j++){scanf("%d",&a[i][j-1]);colsum[i][j]=colsum[i][j-1]+a[i][j-1];}for(i=0;i<n;i++)for(j=i;j<=n;j++){sum=0;for(k=0;k<n;k++){sum+=colsum[k][j]-colsum[k][i];if(sum<0) sum=0;else if(sum>max) max=sum;}}printf("%d\n",max);return 0;}
0 0
- poj解题报告——1050
- poj 1050 解题报告
- POJ 1050 解题报告
- POJ 1088 滑雪——解题报告
- POJ 1047——解题报告
- poj解题报告——poj1006
- poj解题报告——1032
- poj解题报告——1061
- poj解题报告——1450
- poj解题报告——1002
- poj解题报告——2109
- poj解题报告——1218
- poj解题报告——1250
- poj解题报告——1012
- poj解题报告——3299
- poj解题报告——2209
- poj解题报告——2406
- poj解题报告——2242
- Compressive Tracking C++ 代码Visual Studio2013 调试错误大全
- 猜年龄
- 版本控制-搭建git服务器
- CSS3的过渡、动画、转换
- 【最短路】poj1125 Floyd
- poj解题报告——1050
- RedHat Enterprise Linux 6.4使用Centos 6 的yum源
- jQuery EasyUI 在datagrid上使用combotree 进行多选
- Android仿微信(二)——仿微信联系人 首字母分类
- C++中虚函数工作原理和(虚)继承类的内存占用大小计算
- icvPrecalculate
- Redis作者:深度剖析Redis持久化
- vector内存机制和性能分析
- 分布式计算,Job和task