HDU 1003
一道思维题,求和最大的子序列
https://vjudge.net/problem/HDU-1003
#include<iostream> using namespace std; int num[100005]; int main(){ int t,n,i; cin>>t; for(i = 1;i <=t;i++){ int start = 1,end,sum = 0,ans = -INT_MAX,temp= 1; // ans赋值一定要为负 cin>>n; //输入 for(int j = 1;j <= n;j++) cin>>num[j]; //核心代码 for(int k = 1;k <=n;k++){ if(sum >= 0) sum += num[k]; else{ sum = num[k]; temp = k; } if(sum > ans){ ans = sum; start = temp; end = k; } } //输出 cout<<"Case "<<i<<":\n"; cout<<ans<<" "<<start<<" "<<end<<endl; if(i!=t) cout<<endl; } return 0; }
作者:LightAc
出处:https://www.cnblogs.com/lightac/
联系:
Email: dzz@stu.ouc.edu.cn
QQ: 1171613053
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。