<span style="font-size:14px;">
最大子序列和的
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003
参考讲解链接(比较详细):http://alorry.blog.163.com/blog/static/6472570820123801223397/
#include<iostream>
#include<algorithm>
#include<cmath>
int buf[100005];
using namespace std;
int main()
{
int begin,end,sum,maxsum,temp;
int n,m;
cin>>n;
int s=1;
while(n--)
{
memset(buf,0,100005*sizeof(int));
cin>>m;
for(int i=1;i<=m;++i)
{
cin>>buf[i];
}
sum=0;
maxsum=-1001;
begin=end=0;
temp=1;
for(int j=1;j<=m;++j) //dp
{
sum+=buf[j];
if(sum>maxsum)
{
maxsum=sum;
begin=temp;
end=j;
}
if(sum<0)
{
sum=0;
temp=j+1;
}
}
cout<<"Case "<<s++<<":"<<endl;
cout<<maxsum<<" "<<begin<<" "<<end<<endl;
if(n!=0)
cout<<endl;
}
return 0;
}
</span>
HDU 1003 简单
最新推荐文章于 2023-07-10 19:04:00 发布