1. 程式人生 > 實用技巧 >第三階段模擬賽總結

第三階段模擬賽總結

聯賽模擬測試9

A. 嚎叫響徹在貪婪的廠房

  • 只看出來計算相鄰兩個數的差的公約數以判斷是否是一個家族,沒看出來可以貪心,就寫了個60分的DP,

  • 其實直接貪心做就好了,用set或map維護一下是否出現過就好了


B. 征途堆積出友情的永恆

  • 考試的時候寫出了DP式子,但沒有進行優化
    f[i] = Min(f[j] + Max(s[i] - s[j], b[j]))

  • 正解就是堆優化上式,q1維護f[j] + b[j], q2維護f[j] - s[j],然後轉移轉移就好了

晚間測試2

A. 裝飾

  • 這個題好像隨意搞搞就能過...

B. 涼宮春日的消失 (Unaccepted)

  • 打了個暴力水了25分



聯賽模擬測試8

A. Divisors

  • 一看數學題我就直接寫了個50分的暴力。

  • 考完一聽老孔的講解,真的是好簡單,把每個數約數暴力map統計一下就成了

B. Market

  • 看出來是揹包,然後發現重量太大,就把重量和價值換了一下,暴力跑了個揹包,水了40分。
for (int k = s; k >= a[j].v; --k)
    f[k] = Min(f[k], f[k-a[j].v] + a[j].c);
  • 正解是把dp陣列搞的有單調性,upper_bound一下就轉換成log的了。
for (int k = s; k >= 0; --k)
    f[k] = Min(f[k], f[k-a[j].v<0?0:k-a[j].v] + a[j].c);

C. Dash Speed (Unaccepted)

  • 一遇到圖論就卡到裡面去了,只要A不了那整場考試就完了,主要是思路真的是看出來了,就是寫不出來,就很難受

  • 正解是線段樹分治+可持久化並查集

D. 數列運算

  • 原題重做,拿了個90分的高分暴力,這道題我之前都寫過題解水貢獻分,不過根據我的原則數學題在考場是堅決不推式子的。


晚間測試1

A. 中國象棋

  • 一眼以為是狀壓DP,但資料範圍有一點大,開始寫了個20分暴力,最後考試結束才把3進位制狀壓調的過樣例,不過幸虧是考完才調出來,因為交上去0分...

  • 正解是n3的DP,f[i][j][k]表示前i行有j列放了一個,k列放了零個的方案數,6種方法轉移一下就行了。

B. 奇妙的 Fibonacci (Unaccepted)

  • 發現一個奇妙的性質,當j整除i或j為2時,Fj整除Fi,然後約數分解一下水了60分。



聯考day4

A. 煎蛋的疑惑

  • cpp名稱都寫了excatalan(擴充套件卡特蘭數),就像推卡特蘭數那樣打個表就過去了

B. 資料結構

  • 雖然考場上看出來需要用二項式定理推一下式子,可一看到數論就打個暴力水了20分,考後看題解,除了式子外的思路都神相似。

C. 博弈

  • 這題直接CE了,freopen後面沒加分號,不過加了也就10分,以後每次交之前都要編譯一下。

  • 正解是找規律,算出答案可能出現的區間,暴力列舉。

D. 植物大戰殭屍 (Unaccepted)

  • 寫了暴力1分沒有,還沒有A 。