又談最大連續子串行 hoj 1003

2022-07-26 12:21:12 字數 1000 閱讀 3359

上面談到用dp做最大連續子串行,後來又看到另一種方法:

網上說是乙個專家提出,確實挺簡單的,具體證明就不給出了,大家有興趣的可以網上找找。

如果實在不理解就先敲幾遍記住吧。。。。。

題意:也是給出一列數,求其中最大的連續序列和,和首尾排位數;

輸入:第一行是測試例子數,然後跟n行例子。輸出:兩行,第一行是case %d:    第二行依次是  最大和,首尾排位數,末尾排位數。

例子:2

5 6 -1 5 4 -7

7 0 6 -1 1 -6 7 -5

case 1:

14 1 4

case 2:

7 1 6

現給出ac**:

#includeint

main()

if(sum<0

)

}printf(

"case %d:\n%d %d %d\n

",t-t,maxs,st,ed);

if(t)printf("\n"

); }

return0;

}

用dp過的**:

#includeint

main()

maxn=-1001

;

for(i=1;i<=m;i++)

if(sum[i]>maxn)

maxn=sum[i],ed=i;

st=ed;

for(i=ed-1;i>=1;i--)

if(sum[i]>=0

) st=i;

else

break

; printf(

"case %d:\n%d %d %d\n

",n-n,maxn,st,ed);

if(n)printf("\n"

); }

return0;

}

hoj1231最大連續子串行

題目鏈結 這道題屬於經典的動態規劃,核心思想即為dp i max a i dp i 1 a i 這道題給了我最大的收穫就是要仔細讀題,要麼少看要求,要麼看串要求。如下 include include using namespace std int a 10000 dp 10000 int main ...

最大連續子串行之和,最大連續子串行乘積

最大連續子串行之和問題描述為 陣列中里有正數也有負數,連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和,求所有子陣列的和的最大值。分析,對陣列a進行一遍掃瞄,sum i 為前i個元素中,包含第i個元素且和最大的連續子陣列,maxsum儲存當前子陣列中最大和,對於a i 1 來說,sum i ...

最大連續子串行

e 最大連續子串行 description 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串行...