NOIP2018遊記

NOIP2018遊記

Day 0

想到了NOI卡SPFA,補學了一發Dijkstra。

Day 1

6:30起的牀,與宿舍裏的人一起去吃了早餐,7點左右到了機房,複習了40分鐘以後到了考場。

8:30準時開考了,將黑板上的密碼輸進WinRAR裏。
密碼錯誤,沒有文件被解壓
密碼錯誤,沒有文件被解壓
密碼錯誤,沒有文件被解壓
舉手交了監考老師過來之後,老師才發現密碼最後少寫了一個感嘆號。

打開pdf發現評測機換i7了?終於不是老爺機了。
看題:
T1 首尾相連?看看樣例發現不是環。貌似和剛fst的一場CF的edu的C很像,仔細想想發現還是有差別的,一分鐘後覺得可以貪心,但是實現上沒有思路,於是往下翻。
T2 怎麼有點像小凱的疑惑?題目太長不看。。。
T3 看了看數據範圍,感覺部分分很多的樣子。

看完一遍後回去想T1(P.S.因爲做題太少沒發現是原題),想到T1應該不會太難就開始想O(n)O(n)掃描的解法。
過來一會看樣例瞪出了一個根據一個數左右兩邊的數計算貢獻的做法,寫了一發過了小樣例,但是大樣例錯了。
冷靜了一下,發現好像只用維護一個最小值,然後分上升下降考慮貢獻就可以了。
於是寫了一發(挺好寫的),寫完過了大小樣例,一看錶才9點,怕做法假,於是再寫了一個暴力,9:30拍上了。

T2看了兩三遍纔看懂,感覺刪掉那些能被別的數表示出來的數就好了?於是思考怎麼判斷一個數能不能被其它的數表示出來,(這不是就是完全揹包嗎)。由於在之前的模擬賽被bitset洗過腦,想到了一種用bitset的做法。
碼完後一發過了大小樣例。想想好像不會寫暴力的樣子,於是不打算拍了。突然想到這個算法的時間複雜度是玄學,自己造了一發特別強的數據跑了一跑。
2.2s!
趕緊優化……
發現可以先算出最大值?右移好像不用怎麼多次?
於是改了改,秒出答案。
然後再想會不會被卡,發現自己構造不出來了,於是就放着了。

T3題意很好懂,是一個最小值最大的問題。二分之後變爲判定性問題。
等等,怎麼跟模擬賽做過的Tourist Guide那麼相似?於是考慮構造一個dfs,返回未被選擇的最長路徑的長度。這樣一個節點只需要把它的所有兒子儘可能的接上,然後返回沒接上中的最長的那一個就好了?
???
T3這麼簡單???
然後冷靜了一波想想怎麼接,發現可以貪心接,不過是兒子個數的平方的複雜度。
明白了部分分中分支不超過3的作用?
發現這樣做好像都有50分。
於是快速碼完,測了一發小樣例,樣例1過了,樣例2答案不對。
發現寫bug了,改完就過了小樣例。
一測大樣例,過了?!
然後搜了一發發現大樣例的節點最大分支數是70,感覺挺強的。
分析了一下時間複雜度的瓶頸在每個節點接兒子的過程上,這個東西貌似可以排序後二分?於是寫了一發set上二分的,寫完已經11點多了,卻死活調不過大樣例。調到40分只好把程序改爲小數據暴力,大數據用set了。。。改着改着突然想到是set會把元素去重的鍋,於是馬上改成了map就過了大樣例。保存代碼,檢查文件,考試結束。

出來聽大佬們一說才發現T2是個完全揹包,蟲子和麥森T1寫了線段樹?(恐怖)。然後T1還是NOIP原題?(嚇)

中午飯堂好多人啊。

下午隔壁機房考普及組。然而洛谷自測的數據已經出來了,就把自己T2的場上做法寫了一遍,交上去過了!?感覺自己有AK希望了,於是把T3做法也寫了,卻WA掉了,查了查發現二分寫錯了,改完之後還是WA,查了1h,沒有查出錯,放棄了。

晚上在宿舍各種奶。。。

Day 2

早上起牀前突然想到自己的T3做法是怎麼錯的了。原來還是重複元素的問題,但是重複元素不多就不會鍋。。。所以這個假做法過了大樣例。

吃完早餐在機房把心態調整過來,補了一發exgcd。

8:30準時開考,T1是個貪心題,m=n的情況刪掉環上一條邊就好了。
於是9:30碼完過了大樣例。造了組5000的大環的數據,本地跑了1.1s,想到i7評測機果斷放棄卡常,看T2。
T2題面極長,看了10min纔看懂,然而不知道在問什麼,理解了30min,感覺每個數大於或等於它右上角的數就可以了?打完暴力發現3 3出了144,不是112。於是繼續理解,30min後感覺如果一個數等於它右上角的數的話,那麼它右下角的數一定要等於它右下角的數的右上角的數。加了這個判斷後答案變成了128,仍然不是112。繼續在紙上畫啊畫,30min後發現不僅是右下角的數要等於右下角的數的右上角的數,而是所有在這個數右下角的數都要等於它們右上角的數。碼完後終於輸出了112,已經10:30了,於是想着怎麼把這個暴力優化,發現自己想不出時間複雜度更優秀的算法,於是只把n=2和n=3的規律找了。看到比賽時間只剩不到1h,連T3都沒看,就趕緊去看T3了。
T3一眼O(nm)O(nm)樹D,由於某場div3有寫過類似的題,30min寫完了過了大樣例,然後發現所剩時間不多,T2就算推出來也寫不出了,T3也沒時間拿其它部分分了,於是保存代碼,檢查文件,考試結束。

估分100+65+44=209

出來發現大家好像都不會T2正解,我T2的n=3的結論還和其它人不一樣?T3好像是個動態dp?

中午飯堂終於沒有那麼多人了。

下午收拾好了行李,回家,準備上文化課了。

總成績預測:100+100+70+100+65+44=479

2018-11-19

今天出分?怕是又要推遲。

10:30借了級組的電腦查分,但是顯示成績單未上傳。

中午仍然是這樣。

下午信息課發現出了通知,延遲到明天出成績。

還是推遲了。。。

2018-11-20

早上吃早餐的時候發現7:00出成績,於是吃完早餐在家裏等7:00。

實際分數:

100+100+80+100+65+44=489

總結

心態很重要,在作出選擇前一定要冷靜下來。

每道題的時間分配仍然需要改良。

rp++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章