hdu 1003 最大子串行的和

2021-07-11 15:12:20 字數 546 閱讀 2739

sample input2

5 6 -1 5 4 -7

7 0 6 -1 1 -6 7 -5

sample output

case 1: 14 1 4

case 2: 7 1 6

題目要我們輸出的三個數分別表示:最大和的子串行,(就是乙個序列取它連續的一段數,要求和最大)、最大和的子串行的開始位置、最大和的子串行的最後位置,比如第乙個例子:5 6 -1 5 4 -7  最大和的子串行是:6+-1+5+4=14;開始位置是1;最後位置是4;再舉個例子:3 -1 2 3  最大和的子串行是:2+3=5;開始位置是2;最後位置是3

#include

int main()

if(sum<0)//都是負數的情況

}if(num!=1)

printf("\n");//注意輸出格式

printf("case %d:\n",num++);

printf("%d %d %d\n",max,begin,end);

}return 0;

}

hdu1003最大子串行和

看了一些別人的題解,說實話,我現在還不會證明這個,我不知道為什麼這樣是最大值 hdu1003最大連續子串行和 sum i sum i 1 0 sum i 1 a i a i 只有當sum處於增長狀態時才會得到最大子串行 當sum處於減小狀態時,應當更新起點 include using namespa...

HDU1003 最大子串行和

大學搞過兩年的acm,今天心血來潮的去杭電oj上瀏覽了一下,真幸運賬號居然沒有記錯。然後想著之前學過很多經典的演算法,但是很遺憾當時沒有記錄下來,所以現在彌補遺憾的時候到了,演算法會不定期更新。include int array 100005 n void maxsubsum1 void maxsu...

動態規劃 HDU 1003最大子串行和

解題思路 主要思想是動態規劃的思想,maxsum中儲存了當前位置 j 之前的最大子串行和。我們考慮到 當某一子串行的和為負數時,在讀取新的數n j 時,它總會有一定的抵消作用使新的和比n j 小,即它不可能對最大子串行和做出更多的貢獻。故此時我們可以丟棄這一段子串行,轉而從它後面著手。當然了,如果這...