題意:給定一個序列,在這個序列中任取不相交的兩段,使得和最大,求最大和
解法:對於每個位置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 的這種表示稱爲