int maxsum(int *A,int x,int y)
{
if(y-x==1)
return A[x];
int mid=(x+y)>>1;
int MAX=max(maxsum(A,x,mid)+maxsum(A,mid+1,y));
int v=0,L=A[mid-1];
for(int i=mid-1;i>=x;i--)
L=max(L,v+=A[i]);
v=0,R=A[mid];
for(int i=mid;i<y;i++)
R=max(R,v+=A[i]);
return max(MAX,L+R);
}
最大连续和--分治
最新推荐文章于 2023-05-18 21:48:36 发布