////最大子段和
//#include<iostream>
//using namespace std;
//int sum=0;
//int submid(int n,int x[100])
//{
// int ttti,tttj;
// for(int i=0;i<n;i++)
// {
// int ttt=0;
// for(int j=i;j<n;j++)
// {
// ttt+=x[j];
// if(ttt>sum)
// {
// sum=ttt;
// ttti=i;tttj=j;
// }
// }
// }
// return sum;
//}
//int main()
//{
// int n;
// int x[100];
// while(cin>>n)
// {
// for(int i=0;i<n;i++)
// {
// cin>>x[i];
// }
// cout<<submid(n,x)<<endl;
// }
//
//}
////#include<iostream>
////using namespace std;
////int maxsubsum(int *x,int left,int right)
////{
//// int sum=0;
//// if(left==right)
//// {
//// sum=x[left]>0?x[left]:0;
//// }
//// else
//// {
//// int centre=(left+right)/2;
//// int leftsum=maxsubsum(x,left,centre);
//// int rightsum=maxsubsum(x,centre+1,right);
//// int s1=0;
//// int lefts=0;
//// for(int i=centre;i>=left;i--)
//// {
//// lefts+=x[i];
//// if(lefts>s1)
//// s1=lefts;
//// }
//// int s2=0;
//// int rights=0;
//// for(int i=centre+1;i<=right;i++)
//// {
//// rights+=x[i];
//// if(rights>s2)
//// s2=rights;
//// }
//// sum=s1+s2;
//// if(sum<leftsum)sum=leftsum;
//// if(sum<rightsum)sum=rightsum;
//// }
//// return sum;
////}
////int maxsum(int n,int *x)
////{
//// return maxsubsum(x,1,n);
////}
////int main()
////{
//// int n;
//// int x[100];
//// while(cin>>n)
//// {
//// for(int i=1;i<=n;i++)
//// {
//// cin>>x[i];
//// }
//// cout<<maxsum(n,x)<<endl;
//// }
////
////}
//最大子段和动态规划
//#include<iostream>
//using namespace std;
//int maxsum(int n,int *x)
//{
// int sum=0,b=0;
// for(int i=1;i<=n;i++)
// {
// if(b>0)b+=x[i];
// else b=x[i];
// if(b>sum)sum=b;
// }
// return sum;
//}
//int main()
//{
// int n;
// int x[100];
// while(cin>>n)
// {
// for(int i=1;i<=n;i++)
// {
// cin>>x[i];
// }
// cout<<maxsum(n,x)<<endl;
// }
//}最大子段和几种算法,布布扣,bubuko.com
最大子段和几种算法
原文:http://blog.csdn.net/u013240812/article/details/23203371