hdu1231 最大连续子序列
2014-05-26 19:06
351 查看
hdu1231
动态规划 状态转移方程 s[i]=max(s[i-1]+a[i],a[i])
动态规划 状态转移方程 s[i]=max(s[i-1]+a[i],a[i])
//动态规划 状态转移方程 s[i]=max(s[i-1]+a[i],a[i]) #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define MAX 10005 struct Mark{ int start; int end; }; Mark mark[MAX]; int main(){ int k,s[MAX],a[MAX]; bool flag; while(scanf("%d",&k)!=EOF&&k){ flag=0; memset(s,0,sizeof(s)); for(int i=1;i<=k;i++){ scanf("%d",&a[i]); if(!a[i])//a[i]==0 非全是负数 flag=1; if(s[i-1]+a[i]>a[i]){ s[i]=s[i-1]+a[i]; mark[i].start=mark[i-1].start; mark[i].end=i; }else{ s[i]=a[i]; mark[i].start=i; mark[i].end=i; } } int ans=0,f=0; for(int i=0;i<=k;i++){ if(ans<s[i]){ ans=s[i]; f=i; } } if(!ans&&!flag){//ans==0 printf("%d %d %d\n",ans,a[1],a[k]); } else{ printf("%d %d %d\n",ans,a[mark[f].start],a[mark[f].end]); } } return 0; }
相关文章推荐
- hdu1231(最大连续子序列)
- HDU1231:最大连续子序列
- hdu1231 最大连续子序列--DP
- ACM-DP之最大连续子序列——hdu1231
- 【HDU1231】最大连续子序列(简单动态规划)
- hdu1231 最大连续子序列
- HDU1231:最大连续子序列(dp)
- HDU1231 最大连续子序列(动态规划)
- hdu1231 最大连续子序列
- hdu1231 最大连续子序列
- hdu1231 最大连续子序列
- 最大连续子序列 hdu1231
- HDU1231 最大连续子序列 DP
- hdu1231 最大连续子序列
- hdu1231最大连续子序列
- hdu1231最大连续子序列
- HDU1231 最大连续子序列(dp)
- hdu1231之最大连续子序列
- hdu1231 最大连续子序列
- hdu1231 最大连续子序列