HDU 1003最大子段和

2021-08-07 23:08:42 字數 715 閱讀 1584

題目:

輸入n,r然後輸入n個數字,求這些數字中的最大子段和,並標明起點終點。

input:

2

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

思路:簡單的dp題。用dp[i]表示以數字i為終點的最大子段和。初始化肯定是它本身。若dp[i-1]>0,則dp[i]可以加上dp[i-1],

最後迴圈一遍找出max(dp[i]).列印起點和終點,終點就是i,往前找到起點。

#include#includeint main()

b[1] = a[1];

for(i=2;i<=n;i++)

max = 1;

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

int sum = 0,l;

for (j = max; j > 0; j--)

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

printf("%d %d %d\n", b[max], l, max);

if (m < t)

printf("\n");

}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 最大子串行的和

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 題目要我們輸出的三個數分別表示 最大和的子串行,就是乙個序列取它連續的一段數,要求和最大 最大和的子串行的開始位置 最大和的子串行的最...