看了一些別人的題解,說實話,我現在還不會證明這個,我不知道為什麼這樣是最大值
//hdu1003最大連續子串行和
// sum[i] = sum[i-1]>0 ? sum[i-1]+a[i]:a[i];
//只有當sum處於增長狀態時才會得到最大子串行
//當sum處於減小狀態時,應當更新起點
#include using namespace std;
#define max 100003
#define inf 0x7fffffff;
int t;
long n;
int input,beg,end,sum,max_sum,pos;
//定義輸入值,最長序列啟始和終至位置 ,序列當前和,序列最大和
int main()
else
if(sum > max_sum) //更新序列資訊
}cout<<"case "<
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 題目要我們輸出的三個數分別表示 最大和的子串行,就是乙個序列取它連續的一段數,要求和最大 最大和的子串行的開始位置 最大和的子串行的最...
動態規劃 HDU 1003最大子串行和
解題思路 主要思想是動態規劃的思想,maxsum中儲存了當前位置 j 之前的最大子串行和。我們考慮到 當某一子串行的和為負數時,在讀取新的數n j 時,它總會有一定的抵消作用使新的和比n j 小,即它不可能對最大子串行和做出更多的貢獻。故此時我們可以丟棄這一段子串行,轉而從它後面著手。當然了,如果這...