hdu 1231 最大连续子序列(最大子段和)
来源:互联网 发布:网络教育不用考试 编辑:程序博客网 时间:2024/06/03 15:34
http://acm.hdu.edu.cn/showproblem.php?pid=1231
求最长子段和并输出子段的端点,设置数组dp[ i ]表示以i结尾的序列的最大和。那么dp[i] = max( dp[i-1] + a[i], a[i] )。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int dp[10010];int main(){int k,a[10010],f;while(~scanf("%d",&k) && k){f = 0;for(int i = 1; i <= k; i++){scanf("%d",&a[i]);if(a[i] >= 0)f = 1;}if(f == 0){printf("0 %d %d\n",a[1],a[k]);continue;}int maxsum,start = 1,end = 1;//初始化memset(dp,0,sizeof(dp));dp[1] = a[1];maxsum = dp[1];for(int i = 2; i <= k; i++){if(dp[i-1] < 0)dp[i] = a[i];else dp[i] = dp[i-1]+a[i];if(maxsum < dp[i]){maxsum = dp[i];end = i;}}int s = 0;for(int i = end; i >= 1; i--)//终点已知,根据最大和倒着找起点{s += a[i];if(s == maxsum)start = i;}printf("%d %d %d\n",maxsum,a[start],a[end]);}return 0;}
0 0
- HDU 1231 最大连续子序列(最大连续子段和)
- hdu 1231 最大连续子序列(最大子段和)
- hdu 1231 最大连续子序列(最大子段和)
- 最大连续子序列和(经典DP) 之 hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列和
- HDU 1231 最大连续子序列和
- HDU1231 最大连续子序列【最大子段和+DP】
- HDU 1231(最大连续子序列)
- hdu 1231(最大连续子序列)
- 最大连续子序列(HDU - 1231)
- hdu 1231 最大连续子序列 【最大连续子串】
- HDU 1003 最大连续子段和
- HDU--1231 : 最大连续子序列 (DP求连续子序列最大和)
- HDU 1231(最大连续子序列)动态规划-最大连续子序列和
- Luogu-p1115最大子段和(连续子序列最大和)
- hdu 5586(最大连续子序列和)
- hdu 1003 最大连续子序列和
- HDU 1003 Max Sum(最大连续子段和)
- sed 实例,第 3 部分
- 一位盲人按摩师写给讯飞语音云的一封感人至深的信
- /etc/fstab
- HBase的Block Cache实现机制分析
- 用js使得输入框input只能输入数字~~正则表达式
- hdu 1231 最大连续子序列(最大子段和)
- AWK案例(1)
- MyEclipse无法编译项目
- CoconutKit:iOS开发必备的开源组件库
- python 实现多个文件拷贝到ssh 目标机子
- JAVA 经典面试题 不要错过哦
- poj 1655 Balancing Act(树dp)
- 详解linux netstat输出的网络连接状态信息
- 简明 Vim 练级攻略