1. 程式人生 > >NOIP2018比賽總結

NOIP2018比賽總結

Experience

  • 一年一度的NOIP如約而至,這次比賽是在廣州六中。

  • 經過一個月的停課訓練,感覺我的水平有了挺大的提升,怎麼說聯賽一定要全力以赴啊!

DAY1

  • 隨意試機,之後就開始愉快地看題了。

  • T1是簡單題,掃一遍就可以了,陣列都不用。

  • 看了T2,發覺好像沒什麼想法,可能用exgcd判一判吧。

  • 又看T3,完了,又沒什麼想法,莫非只會T1?!

  • 還好我心態比較穩健,很快打完T1過了大樣例之後就去打T2。

  • 判了倍數的,又將兩個數能表示出來的數用exgcd判了,以為可以了。

  • 結果又發現一個數可能被三個甚至多個數表示,瞬間心底一涼。

  • 但轉念一想,a[i]

    a[i] 值域只有25000,那我可以用一個布林陣列記錄一個數是否能被表示。

  • a[i]a[i] 排序後逐個判斷即可。一打,居然過了大樣例,很好,瞬間爽了很多。

  • 此時大概九點半吧,我就去打第三題了。

  • 先是打了很多部分分(55分),什麼菊花圖、一條鏈、求直徑……

  • 接著亂搞一個DP,複雜度又高又過不了樣例,調來調去總是有問題。

  • 在改了好幾個問題之後,發現還有一個大問題——只有正解能解決了。。

  • 於是我就自然而然地想到了正解!

  • 先是二分答案,問題轉化成選最多的鏈是每條鏈長度都大於 midmid ,看能否選出 mm 條。

  • 那麼用一個set貪心的匹配路徑即可,時間複雜度 O

    (nlog2n)O(n\ log^2n)

  • 愉快開打,居然又過了大樣例!瞬間心態很穩健。

  • 還有大概40分鐘,我隨便拍了拍,補了補覺就過去了。

  • DAY1估分:100+100+100 = 300

DAY2

  • 到了第二天,我沉下心來開始看題。

  • T1樹隨便做,而 m=nm=n 的話有點麻煩,如果 O(n)O(n) 貪心的話怕是細節很多。

  • 不敢往下想,於是就去看T2了,想了個自以為對的狀壓DP,覺得怎麼也能拿80分。

  • 看了看T3,44分基礎DP,但之後的點沒什麼思路,部分分多得令人眼花繚亂……

  • 於是我選擇先打T2,打好後再優化一下說不定就能A了呢。

  • 結果打出來只過得了2 2,連3 3都過不了。

  • 對著調了很久,但總是不知道哪裡算多了,3 3老是輸出144,心態崩了。

  • (事實證明是我有個結論限制不知道,方案算多了)

  • 還好發現 n=2n=2 有規律:43m14*3^{m-1} ,共得了50分。

  • 可是由於沒打暴力,沒能發現 n=3n=3 的規律:1123m3112*3^{m-3},很虧,這檔有15分。

  • 搞到 9:50 ,還是沒什麼進展,頓時有點小慌亂,心想怎麼也得先A掉T1。

  • 於是幾分鐘把 m=n1m=n-1 給打了,接著去剛 O(n)O(n)m=nm=n ,但是又很煩。

  • 於是我掐指一算 O(n2)O(n^2) 也能過,事不宜遲,趕緊退而求其次,列舉環上的邊刪掉,每次取最優。

  • 於是這個方法賽後一測 965ms ,我開了vector、五個遞迴過程(太迂腐了)。。

  • 好不容易調過了大樣例(有個地方不小心return了,忽略了幾個支鏈),已經是 11:00 了。

  • 無可奈何,之後去打第三題暴力,很快就得了44分。

  • 但是之後的部分分我卻沒什麼思路(思維太僵化),老是不會換個角度。

  • 咦?還能退而求其次,有個B1檔(深度 100\leq100) 有8分能拿耶!

  • 我很愉快地去打了。

  • 我很愉快地去打了。。

  • 我很愉快地去打了。。。

  • 結果因為思維僵化,各種小Bug,大樣例這輩子都過不了,腦中又很混亂,急於求成。

  • 結果搞了半個鍾,**都沒搞出來,一仗回到解放前,又改成了44分。

  • 還剩十分鐘了,我心情壓抑地檢查了一下,就沒再打了(鉅虧~)。

  • DAY2估分:100+50+44 = 194

Summary

  • 今年NOIP就這樣結束了,有一種奇怪的說不出的感覺。

  • 總估分:100+100+100+100+50+44 = 494

  • 賽後民間資料評測:100+100+100+100+45+44 = 489

  • 原來是Day2 T2的資料範圍看錯了,n2n\leq2 不是 n=2n=2

  • 也就是說可能 n=1n=1m=106m=10^6 ,於是沒了5分,唉。

  • 總的來說,第一天做的還不錯,而第二天就有點失誤了,好多部分分沒拿。

  • 在調程式上花了很多時間,到頭來發現方法都不對,做了很多無用功。

  • 不過也給了我們很多啟示,例如第一天。

  • 在一開始我看完題後只會T1的情況下,通過打後兩題的部分分通悟了其正解。

  • 說明暴力一下子過樣例也不一定是好事情,那就不會繼續往產生錯誤的地方深入思考,從而想出正解了!

  • 而且這次比賽沒有怎麼掛分,估分和實際得分還是比較吻合的,對於我來說已經做的很不錯了。