HDOJ1003(Max Sum)dp之最大子段和
2009-03-23 09:44
483 查看
#include <iostream>
using namespace std;
int main()
{
int s, e, k;
int result, tmp, cc;
int T, n, i, j;
while(cin>>T)
for(j = 1; j <= T; j++)
{
//==============此段位初始化======================
result = -9999;
tmp = 0;
s = e = k = 1;
//==============此段位初始化======================
cin>>n;
for(i = 1; i <= n; i++)
{
cin>>cc;
tmp += cc;
if(tmp > result)
{
s = k;
e = i;
result = tmp;
}
if(tmp < 0)
{
k = i + 1;
tmp = 0;
}
}
cout<<"Case "<<j<<":"<<endl;
cout<<result<<" "<<s<<" "<<e<<endl;
if(j != T)
cout<<endl;
}
return 0;
}
using namespace std;
int main()
{
int s, e, k;
int result, tmp, cc;
int T, n, i, j;
while(cin>>T)
for(j = 1; j <= T; j++)
{
//==============此段位初始化======================
result = -9999;
tmp = 0;
s = e = k = 1;
//==============此段位初始化======================
cin>>n;
for(i = 1; i <= n; i++)
{
cin>>cc;
tmp += cc;
if(tmp > result)
{
s = k;
e = i;
result = tmp;
}
if(tmp < 0)
{
k = i + 1;
tmp = 0;
}
}
cout<<"Case "<<j<<":"<<endl;
cout<<result<<" "<<s<<" "<<e<<endl;
if(j != T)
cout<<endl;
}
return 0;
}
相关文章推荐
- HDU——1003 Max Sum(dp 最大子段和 !!)
- HDU-1003 Max Sum (最大子段和问题DP)
- HDU 1003 Max Sum 最大子段和dp解题
- hdoj 1003 Max Sum 【最大子段和】【贪心】
- hdoj1003 Max Sum (DP 最大子序列求和)
- DP专题2 HDOJ 1003 Max Sum
- HDU 1003 Max Sum——dp求最大连续和O(n)
- hdu 1003 Max Sum 最大字段和 dp
- Max Sum 最大连续和的子序列 HDU 1003 (一维序列DP)
- HDU 1003 MAX SUM 最大连续子段和DP
- HDU 1003 Max Sum(最大连续子序列和 经典DP)
- hdoj1003-Max Sum(数组的最大和)
- Max Sum 最大连续和的子序列 HDU 1003 (一维序列DP)
- hdu1003 dp(最大子段和)
- hdoj 1003 Max Sum【dp】
- [ACM] hdu 1003 Max Sum(最大子段和模型)
- HDU-1003 Max Sum (线性dp 最大连续和)
- DP(一)HDOJ 1003 Max Sum(java版)
- 最大子序列和 HDOJ 1003 Max Sum
- 【最大连续子序列和dp】hdu 1003 Max Sum