題目:
輸入n,r然後輸入n個數字,求這些數字中的最大子段和,並標明起點終點。
input:
25 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 題目要我們輸出的三個數分別表示 最大和的子串行,就是乙個序列取它連續的一段數,要求和最大 最大和的子串行的開始位置 最大和的子串行的最...