最大子序列和:HDU 1003 Max Sum
用动态规划的思想,求解前i个数能获得的最大和,当sum<0的时候,再加上a[i]就不如直接要a[i](不管a[i]是正是负),所以if sum < 0 then sum = 0,from = i+1;这里要更新起点
如果sum > ans则更新ans和起点、终点。
//Must so
#include<iostream>
#include<algorithm>
#include<cstdio>
#define mem(a,x) memset(a,x,sizeof(a))
#define sqrt(n) sqrt((double)n)
#define pow(a,b) pow((double)a,(int)b)
#define inf 1<<29
#define NN 1000006
using namespace std;
const double PI = acos(-1.0);
typedef long long LL;
int main()
{
int T;
cin>>T;
int kas = 1;
while (T--)
{
int n;
cin>>n;
int ans = -inf;
int f,t;
for (int i = 1,from = 1,to = 1,sun = 0,x;i <= n;i++)
{
to