HDU 1231 最大连续子序列
来源:互联网 发布:画数据流程图的软件 编辑:程序博客网 时间:2024/06/04 20:02
dp解法
#include<bits/stdc++.h>using namespace std;int a[10020],dp[10020],l[10020],r[10020];int main(){ int K; while(scanf("%d",&K)==1&&K) { for(int i=1;i<=K;i++) scanf("%d",&a[i]); dp[0]=0,l[0]=1,r[0]=0; for(int i=1;i<=K;i++) { if(dp[i-1]+a[i]>=a[i]) { dp[i]=dp[i-1]+a[i]; r[i]=r[i-1]+1; l[i]=l[i-1]; } else { dp[i]=a[i]; l[i]=i; r[i]=i; } } int ans=-1; int L,R; for(int i=1;i<=K;i++) { if(dp[i]>ans) { ans=dp[i]; L=l[i]; R=r[i]; } } if(ans==-1) printf("0 %d %d\n",a[1],a[K]); else printf("%d %d %d\n",ans,a[L],a[R]); } return 0;}
非dp解法
#include<bits/stdc++.h>using namespace std;int a[10020];int main(){ int K; while(scanf("%d",&K)==1&&K) { int s=0,l=1; int L=1,R=1; for(int j=1;j<=K;j++) scanf("%d",&a[j]); int M=a[1]; for(int j=1;j<=K;j++) { s+=a[j]; if(s>M) { L=l; M=s; R=j; } if(s<0) { s=0; l=j+1; } } if(M<0) { M=0; L=1; R=K; } printf("%d %d %d\n",M,a[L],a[R]); } return 0;}
0 0
- hdu 1231 最大连续子序列 【最大连续子串】
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列和
- hdu 1231 最大连续子序列(DP)
- HDU-1231 最大连续子序列
- HDU 1231 最大连续子序列 (dp)
- HDU 1231 最大连续子序列
- hdu 1231最大连续子序列 【DP】
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列
- HDU 1231 最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231最大连续子序列
- HDU-1231-最大连续子序列
- hdu 1231 最大连续子序列
- hdu 1231 最大连续子序列 (dp)
- 快速排序
- emc测试中,esd里直接放电和间接放电是什么意思
- Codeforces Round #244 (Div. 2)——Checkposts
- 用PHP与XML进行网站编程
- 高效5步走,快速搭建Hadoop2伪分布环境
- HDU 1231 最大连续子序列
- x86 x64
- 移植python到小米路由器记录。
- js 控制 输入 数字
- Java高级视频_网络编程(二)
- C++设计模式---享元模式----浪费可耻,节俭光荣
- hdu 3938并差集
- IOS评分跳转
- POJ-2974 Just Pour the Water (矩阵快速冥)