题意:给定一个序列,在这个序列中任取不相交的两段,使得和最大,求最大和
解法:对于每个位置i,保留从开头到该位置能找到最大连续段的和,方法为从前往后扫,保留最大段tmp,和一个能加到位置i的最大数sum,如果sum+A[i]>tmp,则tmp=sum+A[i];如果sum<0则令sum=0,不作贡献;然后从后往前做一遍,做的过程中对于位置i,找出它前面能找到的最大段和它后面能找到的最大段的和最大,代码如下:
题意:给定一个序列,在这个序列中任取不相交的两段,使得和最大,求最大和
解法:对于每个位置i,保留从开头到该位置能找到最大连续段的和,方法为从前往后扫,保留最大段tmp,和一个能加到位置i的最大数sum,如果sum+A[i]>tmp,则tmp=sum+A[i];如果sum<0则令sum=0,不作贡献;然后从后往前做一遍,做的过程中对于位置i,找出它前面能找到的最大段和它后面能找到的最大段的和最大,代码如下:
描述 將正整數n 表示成一系列正整數之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整數n 的這種表示稱爲