hdu 1081 (最大子段和的升级版,二维)
来源:互联网 发布:手机联系人同步软件 编辑:程序博客网 时间:2024/05/21 12:40
点击打开链接
一维最大字段和:dp [ i ] = max ( dp[ i-1 ] , 0 ) + a [ i ] ;
如果是二维的话,可以变成一维的用map [ i ] [ j ] 表示第 i 行前 j 个元素的和,dp [ k ] [ i ] (l 表示j) 表示到第 k 行 第 i 列的最大值
则dp [ k ] [ i ] = max ( map [ k ] [ i ] - map [ k ] [ j -1 ] , 0 ) , ( j <= i ) .
#include"stdio.h"#include"string.h"int main(){int n;int i,j,a;int ans,t,k;int map[101][101];while(scanf("%d",&n)!=-1&&n){memset(map,0,sizeof(map));for(i=1;i<=n;i++){for(j=1;j<=n;j++){scanf("%d",&a);//map[i][j]表示第i行前j个元素的和map[i][j]=map[i][j-1]+a;}}ans=-999999999;for(i=1;i<=n;i++){for(j=1;j<=i;j++){t=-1;for(k=1;k<=n;k++){//t表示到k行时,第j列到第i列的最大值if(t>0)t+=map[k][i]-map[k][j-1];else t=map[k][i]-map[k][j-1];if(t>ans)ans=t;}}}printf("%d\n",ans);}return 0;}
- hdu 1081 (最大子段和的升级版,二维)
- HDU-1081-To The Max(二维最大子段和)
- 最大子段和及其升级版
- HDU 2845 最大非连续子段和 二维dp
- 最大子段和系列(二维子段和、环形数组子段和、最大m段和) 思路
- HDU 1231(最大子段和)
- 【m段最大连续子段和的和】HDU
- 最大子段和的以为与二维求解
- hdu 1081 最大子矩阵(二维前缀和优化)@
- hdu1087最大上升子段和(二维数组写法)
- hoj 2558 二维最大子段和
- Maximum sum 二维最大子段和
- HDU 1003 求最大子段和的动态规划
- HDU 1003 Max Sum(最大连续子段和)
- HDU 5586 Sum (最大连续子段和)
- hdu 6205 card card card(最大子段和)
- hdu 1024 最大m子段和
- hdu 1003 最大子段和
- 图论 拓扑排序
- phonegap入门--10 Contacts
- 普及一下域名知识
- 添加工具栏
- fzu-1010
- hdu 1081 (最大子段和的升级版,二维)
- 值类型和引用类型
- Android系统系统升级过程分析之------update.zip包的制作
- hdu 1792 A New Change Problem
- iOS学习之UISwitch控件两种使用方法和监听
- SSIS学习视频(SQL Server 2008)
- haskell(11)
- CF:41A. Translation
- 383. Still water run deep. 静水常深