HDU 1003 解題報告

2022-08-16 10:15:13 字數 614 閱讀 8585

問題描述:求最大連續字串

分析:一道簡單的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 #include2

3int 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...