問題描述:求最大連續字串
分析:一道簡單的dp,狀態轉移方程是d[i] = ( d[i-1]+a[i] > a[i] ) ? d[i-1]+a[i] : a[i]
d[i]表示以第i個數字結尾的連續字串的最大值,限制條件是 d[0]=0
題目要求找出最大連續字串的首尾序號,尾序號顯然是d[i]的下標 i ,首序號用陣列start[i]儲存,point是儲存首序號的臨時量,注意point初值是1
還有一點,最後一組資料輸出完換行後不能再列印空行,否則會判 presentation error
1 #include23int a[100005],start[100005],d[100005
],t;
4int
main()524
else
2529}30
int max=d[1],ins=1;31
for(int i=2;i<=n;i++)
3237
}38 printf("
%d %d %d\n
",max,start[ins],ins);
39if(t"\n"
);40
}41 }
刷題訓練 hdu 1003
按時間順序的做題 如下 timelimit n 2 記錄字首和,遍歷所有組合,即s i s j 1 pragma warning disable 4996 2 include 3 include4 include5 include6 include 7 include 8 define max1 1...
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...