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

【比賽】NOIP2018 總結

一、考試過程

Day1:

先看了一遍題目,得到的結論是沒有題是直接秒掉的,然後一道一道認真看。

看T1的時候開始並沒想起來有一道原題,只是腦海中有一個印象,好像求差分和可以。然後自測了一下小樣例,發現可以過,寫了3行程式,又過了大樣例。之後才想起來這是一道原題。

順序看題,接下來是T2。看懂題目後,大概有了幾個結論,粗略證明了一下之後,就發現是個裸的揹包。寫了大概十行的程式碼,發現可以過所有樣例,然後寫了個複雜度高一點的揹包拿來拍。

搞完前兩題只用了大概40分鐘,接下來是T3。一開始認為寫不了正解,就把各個部分分都寫完了。之後,突然發現菊花的部分分對正解啟發很大啊。首先,最小最大之類的問題肯定二分,check的時候對每個點都貪心,貪心的方法和菊花的一樣就好了,用個multiset維護。但是寫貪心都是很虛的,邊寫邊想。寫完之後發現大樣例過不了,連忙調菊花的部分分來看哪裡有錯,發現multiset的部分細節沒處理好,調了一下,終於過了大樣例。

出考場的時候越來越虛,在洛谷交完後發現前兩題穩了,但第三題multiset可能被卡常。

Day2:

看完題後一樣沒有能一眼秒的題。

看T1,想了一下後發現不難,然後寫了一百多行。又寫了暴力拍上了,但是忘記測極限資料了,導致沒有剪枝。

T2沒思路。寫暴力找規律,發現只要把 \(n\)\(m\) 相等的情況求出來,然後後面的答案就是乘 \(3\) (後面發現是錯的,不過 \(n \leq 3\) 的時候可以對)。最後寫了65分走人了。

T3沒思路。但 \(n^2\) 的就是個裸的樹形DP,先寫了。然後發現鏈的幾個字首和就似乎可以做。最後寫了60分,但是掛成了56分。

二、得失總結

總的來說,這次NOIP至少在能做的題都做了的情況下,做到了幾乎沒有掛分。
但是與他人一比較,差距還是存在的。具體來說,仍然存在以下幾個問題:

  1. 總是忘記測極限資料,或者說不知道程式的極限是怎樣的。例如D1T3,D2T1這兩道題,寫出來的演算法複雜度是對的,正確性也可以保證,但是會由於各種各樣的原因(常數、STL等),導致不能通過所有的點。而這些問題只要測了極限資料就可以知道問題,但是總是忘記,這一點急需注意。
  2. 墨守成規,無故縮小聯賽考察範圍。今年考了新的DDP,這在以前都沒有。所有考試之前,自以為是地認為不會考這個東西,於是遇到這型別的題目都直接過掉了。其實如果學了這個東西的話,D2T3就是個裸題了。

所以,接下來的這段時間,必須及時把不會的內容全部學完並熟練掌握,然後通過一場場的考試糾正自己不好的考試習慣,最重要的是,不能夠低估任何一場考試。