您的位置:首页 > 其它

HDU1003 最大子序列和问题

2007-12-23 13:47 387 查看
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1003

#include <iostream>

#include <vector>

using namespace std;

int MaxSubSum(const vector<int>& v,int& start,int& end)

{//求最大子序列和

int maxSum = -2000,thisSum = 0,i,t=0;

for(i=0;i<v.size();++i)

{

thisSum += v[i];

if(thisSum>maxSum)

{

maxSum = thisSum;

start = t;

end = i;

}

if(thisSum<0)

{

thisSum = 0;

t = i+1;

}

}

return maxSum;

}

int main(int argc, char *argv[])

{

int caseNum,curCase=0,nNum,temp,maxSum=0,start=0,end=0;

cin>>caseNum;

do

{

curCase++;

cin>>nNum;

vector<int> v;

for(int i=0;i<nNum;++i)

{

cin>>temp;

v.push_back(temp);

}

cout<<"Case "<<curCase<<":"<<endl;

maxSum = MaxSubSum(v,start,end);

cout<<maxSum<<" "<<start+1<<" "<<end+1<<endl;

if(curCase<caseNum)

cout<<endl;

}while(curCase<caseNum);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: