浙大ACM编程竞赛的摸板(内部质料),吐血奉献!!!!里面内容超多,把ACM题目分成了好几类,没一个类型都有详细的代码
源代码在线查看: 最大子段和.txt
//求最大子段和,复杂度O(n)
//传入串长n和内容list[]
//返回最大子段和,重载返回子段位置(maxsum=list[start]+...+list[end])
//可更改元素类型
typedef int elem_t;
elem_t maxsum(int n,elem_t* list){
elem_t ret,sum=0;
int i;
for (ret=list[i=0];i sum=(sum>0?sum:0)+list[i],ret=(sum>ret?sum:ret);
return ret;
}
elem_t maxsum(int n,elem_t* list,int& start,int& end){
elem_t ret,sum=0;
int s,i;
for (ret=list[start=end=s=i=0];i0?s:i))
if ((sum=(sum>0?sum:0)+list[i])>ret)
ret=sum,start=s,end=i;
return ret;
}