說好的補個遊記……
雖然分還沒出,但是已經有代碼了,找到了兩套數據,測得還算滿意,沒寫炸太多地方,回頭看看NOIP,還是有遺憾的地方……
Day0
比賽前一天
作爲考場,我們把東西搬出了機房
信心滿滿,十題暴力!!!
Day1
可惜我不在自己的學校考,去年還是……
回憶着這個令我省選考炸的考場,我忐忑的走向我的座位。
早到了一會,卻不讓動電腦,腦中翻來覆去的想NOIP2017怎麼考炸的,想起來都覺得愚蠢……
密碼寫在了黑板上,我解壓完的時候還沒開始,趁老師還沒發現,先看了第一題。剛看完,老師就不讓再看了,但我早就把T1一覽無餘。
積木遊戲我還是做過的,我就花了寫了這題,現在感覺好慢
順利A了T1,來看T2。我可能想不到NOIP到底有多zz ,這個T2居然是完全揹包,我卻義無反顧的寫了同餘最短路,寫了一半,發現不對,,ccf老爺機怕是不太能過 ,我當時還不知道他換機器了。情急之下咋辦呢……對,數據分治,我就討論了一下最小的的情況,是這樣我就同餘最短路,否則我就exgcd,這樣就是。
現在想起來,我比賽的時候就如同睡覺,我們分析一下這個最短路的複雜度,我寫的是單調隊列,這樣的話複雜度就是這個入隊次數是嚴格大於,且不是和這個一個級別的,我卻誤以爲是,那我寫什麼數據分治呢。
再插敘一段,比賽結束後,我有一天突然發現這個複雜度不是,我慌了,以爲是的,那我豈不是隻有80了,那我豈不是要退役了 。轉入冷靜分析階段,我發現如果一個位置被更新多次纔會插入隊列多次,這樣的話考慮第一次和最後一次,首先更新的來源顯然單增,因爲這是單調隊列dij,但是更新後的數據顯然單減,更有一個性質是每兩種最短路的值最少相差,那麼假設更新的第一次是,最後一次是,那麼每個點入隊次數最多是次,乘一下就是,所以總複雜度就是,從漸進的角度考慮,後面沒太大用了,我那個優化顯然就是個常數問題,還白慌一場。
更加愚蠢的是這個單調隊列,既然證明次數是,那麼用優先隊列輕鬆可以做到,log顯然比100小很多,只是常數略大,這豈不是退化了複雜度……
最後值得慶幸的是我還是寫對了exgcd和最短路,在預測中得到了100pts,不知道ccf是不是換了機器後跑的更快……
接下來是T3,開始我還不會,但是冷靜分析,二分板上釘釘,發現每個子樹出邊只有1條,所以可以記每個子樹的最大匹配,和剩餘的最長鏈,然後匹配的時候再二分不就好了嗎……
寫出來也很快,不過我要吐槽大樣例了,太水了,我拿一條鏈拍,一下就拍錯了,發現子樹完美匹配的時候出邊不是負無窮,是0因爲根還可以匹配。
最令人傷心的是我還沒意識到根和幾顆子樹也可以連好幾條,所以我就只能連一條,所以目前只有40分。
Day2
第一題比較簡單,當時就想了枚舉邊刪掉,但是我又犯了一個老錯誤,沒測大樣例,這回還好只是第四個沒測,但是就少考慮了不連通的情況,分數。
第二題我還是犯了一個錯誤,我想到矩陣乘,就是一部分的限制:左下大於等於右上,但是寫了半天才發現錯的,也沒太多時間打表,一心想了正解,最後還是沒想出來,騙了和,但是本來我考慮了,但是寫反了,最後大概丟分,實測一個,一個。
第三題本來想拉動態最大獨立集的板子,而且我考試前是複習過的,但是最後沒有時間,就花1h糾集大暴力打算72,最後A1的寫炸了,沒了8pts,我也不管了……
總之,這次NOIP雖然是爆炸的,但也是幸運的。在接下來的訓練中努力吧!