1. 程式人生 > >考試總結10-08

考試總結10-08

優秀 減少 考試 貪心策略 就是 log 上一個 每一個 inf

本次考試:

第一題通過與李澤鐸相同的辦法想了出來:能拿錢的原因在於最左右兩邊的錢只算了一次,而中間的都算了兩次.只要拿中間的補上就可以了,讓那部分錢承擔更多"責任".如果第一個拿走了x,那麽以後偶數個都要加x,沒有任何關系.但奇數位置都要減少x,如果減少到0就不滿足題意了.而且如果n為偶數時最後一個位置的錢還要增加x,不得不把錢放回去.

因此n為偶數時一定為0,否則取奇數的最小值-1.如果有1的話答案還是0.但是也沒辦法.

第二題想了很久,剛開始以為n每一組都是50000,乘上個T=5000復雜度就很大,應該考慮貪心了,於是想了很久貪心策略還是想不出來.再看一遍數據發現n一共不超過500000,那麽可以考慮n*logn帶二分性質的算法了美滋滋.本題與lis類似,並根據之前想貪心的時候的推出來的各種性質寫出了正解:a[i]=read()-i後對a[i]做最長的不小於零的不下降子序列,答案就是n-len.求lis的時候可以上一個二分,正好又復習了一遍二分的模板(復習的意思就是調了很久).

第三題想到了是dp了,想到了一個自以為很對,復雜度也很優秀的算法,然後開始推轉移,發現代碼很難寫,但是以為是正解,就繼續敲了下去.於是最後發現是錯的.再寫另一個四重dp來不及了,只好水了一共dfs嘗試30分,然後數組謎之開的很大,拿了零分.

以後做題要仔細看好每一個條件,考慮出題人要考什麽,我會寫什麽算法,在紙上推好後再開始敲代碼.

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

考試總結10-08