1. 程式人生 > >NOIP2017滾粗記

NOIP2017滾粗記

曾經 a* 哈哈 一個 數據結構 過去 網易雲 acs 程序

NOIP2017滾粗記


扯淡

考完聯賽後一直在搞文化。。。
聯賽過去了不知道多少天了才來寫這東西。。。。


Day0

早自習知道了要期中考試。
感覺心態炸裂了。
上午在亂敲板子。。。。
打了一堆莫名其妙的數據結構。
其實完全沒什麽卵用啊。
下午老師說要調整心態。
調整心態啊。。。。。
那就頹唄。orz yyb大佬 直接用解放軍虐翻美帝
感覺CJ的象棋素質不夠高啊,就連我這種渣渣都沒人下得過。
晚上在家裏頹?
10點就睡覺了,不過躺在床上想了很多亂七八糟的事情。

Day1

出發的比較早,早餐在長理的食堂吃的,味道還不錯。
然後8:15進了考場,感覺今年確實很嚴格啊。
尼瑪開考前不準動電腦?
閑的蛋疼的我趕緊默了一遍配置。

這個NOILinux怎麽設置了密碼?
哼,我畢竟曾經在NOILinux上安裝過網易雲。
當然不會忘記NOILinux的密碼。
看著周圍同學一臉懵逼,機智的我輸了個123456就進去了。

進去一看,這什麽垃圾系統。
工作區都沒有?外觀裏面開不了?
不支持新建模板功能?
然後我在文檔裏面發現了一些詭異的東西。
CCF今年太良心了吧!!
模板已經給你打好一大半了。
還有對拍也給你打好了。
emacs配置裏面給你自動加上了編譯命令。
不過配置+模板還是消耗了大約10至15分鐘。

15分鐘看完題目。
T1明顯是一道規律題目。
T2直接模擬。
T3的話。。。。。為啥k這麽小呢?是不是可以搞一些奇怪的算法。

然後開始想T1。
一開始在觀察樣例。
\(a< b\)
對於任意\(x=ak+r\)
我們要使其可以選,
r肯定是用b來搞掉的。
那麽又\(gcd(a,b)==1\)
所以每一個r都需要對應個數的b來搞掉。
所以b用的最多的就是(a-1)次。
所以答案為\((a-1)*b-a\).
\(ab-a-b\)

tnnd想了我好久啊。
不放心還打了個拍。
這時候大約是9:15的樣子。
去上個廁所穩下。
然後看T2.
tnnd還是細節很多的。
不過反正不用擔心復雜度的問題。
一頓亂搞總之就過了大樣例。

這時候10:00了。
還有兩個小時,感覺今天很穩啊。(內心真實寫照,感覺奶死了自己)
然後T3不會做了。

尷尬。
部分分貌似不是很好拿。
感覺有點捉急。

bfs肯定可以TLE。在最短路很長的時候跑的會很快。
DP肯定可以MLE。但是可以處理最短路很短的時候的情況。
嗯。。。。。。
那就直接把這兩東西搞在一起不就可以了嗎。
然後就開始打BFS+最短路剪枝。
沒打多久就打出來了。
我去你大爺的。
大樣例一次要跑1分鐘(O3)。
還是個錯的。
答案就比大樣例少了20幾。
崩潰了,調到11點中沒有調出來。
決定再打DP。
然後20分鐘打完,大樣例過了。
這就很舒服.......
打個對拍,好像在最後20分鐘調出來了。
然後就一直在測極限數據。
我的程序是如果最短路大於某個值,就BFS,否則就DP。
然後我就一直在調這個參數,最後發現DP跑的慢的要死,一怒之下設成了100。
最後還是檢查了一下。
貌似沒有問題。


出來膜拜ZSY大佬怒切T3.
下午在頹刺客信條。
晚上突然想起T3忘記初始化路徑。
完了,心態爆炸,GG上天啦。
期望得分:
\(100+100+0=200\).

Day2

今天走的很早,還是在這邊吃的飯。
進考場了。
仍然是10~15分鐘敲配置+模板。
然後再看題目。
T1明顯套路煞筆題。
T2一看就感覺是狀壓,又感覺不是。
比較n<=12的都應該可以用搜索做了吧。
T3我一看就知道是差分,但是我並不會做。
果不其然,聯賽這尿性就是每年一道差分題

水完T1差不多9:15的樣子。
接著剛T2。
果然狀壓好像不行啊。
必須記錄每個點到根的距離啊。
那就搜唄......
加了個最優性剪枝發現跑的賊快。
但是極限數據過不了。
麻煩啊。。。。。
然後發現對答案有影響的只有兩個東西。
所選的邊的邊權。
所選的點到根的距離。
那我是不是可以A*?
把搜索順序按照一個估價函數的值排序。
然後小的答案就會排在前頭。
然後我的最優性剪枝就會發揮作用。

不得不說我想的太多了,
由於每次要開一個數組來存搜索順序。
不管我怎麽改估價函數,
跑的比原來的還慢。

我一氣之下只搜按照估價函數排序後前一半的決策。
tnnd,跑的還是很慢啊。。。。
不過答案是對的誒。
搜1/4?慢
搜1/8?慢
搜1/16?WA了.......
後來只搜前3個決策。
勉強能過而且不TLE。
打了個對拍,然後就放那裏拍。(60s才能拍一組強不強?)
應該還剩下1h30min的時間吧。

然後就去寫T3了。
50分就隨便亂搞一下。
不過調了我好久啊,最後只剩下50分鐘了。
然後我發現30分需要打平衡樹。
50分鐘我打的出來麽.......
這時候一看發現T2拍WA了。
發現拍了50多組數據就WA了。
好可怕,然後仔細一測發現還是個T的。
再稍微縮小了一下決策範圍。
應該還是挺穩的。
(出題人應該不會卡我這種鬼畜的搜索算法吧。。。。。。)
然後突然發現T3剩下30分可以寫值域線段樹。
哈哈哈,單點修改線段樹就十分舒服。
大約10分鐘後我寫完了。
測了一組小樣例我就沒管了。
最後糅合部分分的時候真tm煩。
差點沒搞好。


出了考場感覺Day2的狀態不錯。
然後下午一測。。。。。
T3忘開Long Long。
GG了。
期望得分:\((100)+(100-??)+40=240-??\)

總結

這次考試的話,感覺考的不錯,但還是留下了很多遺憾。
Day1T3就忘記初始化。雖然加上之後只有30分,又WA又T又RE
Day2T3忘記開longlong,導致辛辛苦苦打了80分,最後只能得到40分。

兩天都是T3出毛病,感覺跟我的緊張心態脫不了幹系。
同時也跟平時考試時的放松有關系。
直到聯賽前的一次模擬考試,我仍然犯了不少低級錯誤。
想必聯賽的時候肯定更容易犯錯吧。
會做題是實力,可是能拿分才是真正的實力。

最後的扯淡

為期一個月的NOIP集訓就這麽結束了。
然後我就去考期中了,
然後就被爆踩了。
準備被各科老師懟死。

NOIP2017滾粗記