前言
很懶。
太懶了。
不僅懶得寫題。。連游記都懶得寫。。
花點時間填一下坑吧。。不過話說我去年的NOI/APIO/CTSC游記也沒寫。。
省選前
板子好像一早就打完了,沒什么可干的。
也不願意開新題,學新東西更是不可能的了。就每天打打GTA和CR才維持的了生活這樣子。
還是有點慌的,HAOI會出什么樣的鍋?被退役了怎么辦?
平時我的考試策略已經非常保守了,決定這次采用更保守的。
除了一眼秒掉又好寫的題,其他題只寫暴力,不管正解。
省選這個東西嘛。。進隊才是最重要的。像去年一樣,在HA隨便打打暴力就進隊了,今年就干脆把暴力分拿穩,隊長什么的,不去考慮了。萬一寫了正解又是和暴力分一樣怎么辦?
考試日,上午
去年的NOI教會我什么叫“心態第一”,決定這次按照自己的方法調整心態,只要心態不爆炸,最后1min翻盤都是可能的。
早上8:30開考,窩故意遲到了兩分鍾,然后一臉淡定地進場。
家長和教練等的很着急,教練不停地給我打電話我也沒聽見這樣子。。估計都快急瘋了吧qwq。
算起來省選時間很緊,只有3.5h,根本沒時間考慮什么正解啊喂。。。搞得像NOIp一樣,題又這么難,怎么可能寫正解啊?
先看題,算暴力分。
T1
嗯?背包?NTT?
顯然不是啊。。。
指數級枚舉好像有40分,先看看。
感覺有點像數論,和gcd有關的東西吧?
是不是把裴蜀定理拓展一下啊?取所有數的gcd?(瞎猜結論)
(大力證明中。。。)
算了。。對於兩個數來說是對的,那應該沒問題吧?
40pts到手
T2
這個題和CF某個題很像啊?是不是隨便構一個生成樹出來然后選擇一條路徑反轉啊?
假的啊顯然不是。(腦抽ing)
還是打暴力吧qaq。
考慮70分,對每一個點列一個xor方程,直接用bitset解方程組就可以做辣~
咦好像要詢問多次?每個點刪掉之后詢問一遍?
套個分治叭,感覺過不了,不過60分還是沒問題的叭qwq。(腦抽ing)
60pts到手
T3
這串串題怎么一臉不可做的樣子啊?
先套個SAM,然后?然后?然后咋辦啊qaq?
算了還是30分暴力吧。。平方求LCP也是很好寫的,就不用寫SA了。
不過這數據范圍這么鬼畜。。是不是低復雜度暴力能水不少分啊?
如果有時間就寫寫SA吧,不過T2的分治碼量這么大應該是沒時間了。。
30pts到手
這樣算下來有40+60+30=130pts,感覺還是湊合的,隊長是沒戲了,進隊應該綽綽有余吧?
開始寫。
T1
寫完了40分暴力,過了大樣例,結論應該沒問題。
想想后面的分數?能不能DP?
選取子集的問題怎么DP啊?肯定有高妙的做法。(腦抽ing)
還剩2h
T2
2h的話應該足夠寫完調完線段樹分治+線性基了吧?
要不然這個題怎么寫。。我這個思路除了這一檔根本沒什么分啊?
硬剛吧。。。
(30min后)
好像真的和CF那個題是一樣的。。確實反轉路徑就可以了啊?
我剛剛在想什么啊。。。怎么肥四啊。。。
那這個題不是BFS就沒了?線性的?
噢還有多次詢問啊,那繼續套分治+並查集,果然還是有log的。
這個並查集維護的東西有點多啊。。現在只有1.5h了。。就算1h寫完也不一定調出來啊?
這樣算起來70pts的平方暴力還是很好寫的,n遍BFS就可以了。
過了大樣例,70pts到手。
T3
大概還剩20min,不寫SA了吧,這做法細節好多的啊?
很快寫完了平方暴力。拿到30pts。
然后延長30min。。。
要是早知道延長30min我就寫T2正解了啊喂!
還剩40min,搜刮一下其他的分數。
T1
噢好像確實可以DP。。。我剛剛怎么回事啊?
不過DP的話要把當前的gcd壓進狀態里面,復雜度O(np),有60分了。
可以把p的因子都取出來,不過寫map要多一個log,還有點復雜,時間不夠了算了吧。
最后還有個p=998244353白送的10分。
這樣T1就有70pts了,拍了一下沒問題。
T2
就剩5min了。。慌慌張張去拍T2。
先寫了個指數暴力,又寫了個數據生成器。
生成器寫起來有點麻煩。。因為不能有重邊自環什么的。。不過這個對我的程序沒影響吧?
這時候考試剛剛結束。。趕快拍!
WA。
???我大樣例都過了啊?
再拍!
TLE,死循環了。
??????咋回事啊????
看了一眼數據,好像是有重邊自環的點我掛了。不過我的程序不是能處理重邊自環嗎?
算了。。70變0。。。出考場了。。
考試日,中午
這樣算下來只有70+0+30=100pts,還是挺危險的吧?
下午打穩暴力就好了。
imone說他前兩題都會做,T3寫了SA的低復雜度暴力,不知道能騙多少分。
“至少有60吧?”我奶他一口。
“那你上午就有260了,tql!”我又奶他一口。
吃飯的時候心態爆炸。。腦子飛速運轉,考慮T2到底怎么掛的。
后來終於考慮明白了。。我的程序在處理重邊自環的時候確實會出錯。。
而且根據我上午的輸出來看,錯的符合我的預期,那應該是沒問題了。
即使是這樣,imone還是吊打我90分啊?
Mike安慰我,讓我下午翻回來,雖然我知道不可能,但還是答應了。
聽有人說T1是什么莫比烏斯函數。。好像有點道理啊?為啥我想起來因數的時候就沒往這方面想啊?
考試日,下午
和去年一樣,到場還沒開考,上午的東西沒刪,先拍上午T2。
(我去年也是到考場之后先拍上午T2 qwq)
沒問題了,放心了。
開考,看暴力。
T1
這個題意。。這個范圍。。。
除了平方DP還有什么做法啊?
而且似乎除了平方DP,也沒什么做法能拿分了啊?
三次方怎么寫啊?這數據范圍是搞笑的吧?
除了100分就是20分,而且這20分的暴力還這么難寫,當然是寫100分。
雖然我很不擅長數數,但是就是要硬剛。
硬剛之前看一下T2叭qwq。
T2
yql給我講過一個類似的題,這種題都和w[k]沒關系的,肯定是先對於每個k算出來之后再乘w[k]。
所以我先枚舉k,然后怎么組合一下?
怎么組合啊,好難難啊QAQ?
這個模數有點奇怪啊?是不是NTT模數啊?
果然是。。這要么是煙霧彈,要么真的是多項式。
生成函數?假的吧?
腦子好亂,不會,告辭。
基本確定了策略,先去猛剛T1,然后來T2隨便拿一點暴力分。
頓時慌了。。這T1要是剛不出來,基本上下午就爆零了。
不過數數也沒幾個人擅長吧?估計大家都是一丁點分數。
T1
推了好久式子,沒任何進展。
本來是16:30結束,我記成了16:00結束,慌的一批。
不敢亂猜式子,很可能猜過了樣例就FST。
只希望做完這個題之后還能給我留0.5h寫T2暴力。
搞了半天,搞出來一個式子,過不了小樣例。
手算了一波,發現真的過不了,就開始對着樣例調系數。
瞎換了一波系數就過了大樣例。。。
頓時感覺棟棟挺真的,他當時給我講《51nod 排列合並機》的時候,就說是自己瞎換了一波系數就過了,原來這種操作真的存在。
數數題過了大樣例拿頭FST啊,肯定AC了啊。
一看表發現離比賽開始才過了50min,十分舒爽,本來這個題預計2h做完的。
就好像打CF Simulator的時候,突然過了某個題一樣23333。
T2
繼續,首先枚舉k,然后呢?
恰好出現k種顏色,是不是可以廣義容斥啊?
(瞎寫了一個容斥式子)
那是不是套一個NTT就沒有了啊?
板板講過的!廣義容斥套NTT!講過好多遍!
可是我一遍都沒聽懂啊QAQ?
后悔沒好好聽課。。。
(苦澀.jpg)
然后開始慢慢推容斥變NTT的式子。
推了半天推出來一個,這玩意兒對不對啊?看起來挺靠譜的。
這時候還剩1h。。如果這東西寫上去寫掛了,肯定是調不出來了。。
首先我容斥式子不一定對。。其次我NTT式子不一定對。。再其次我NTT還可能寫錯。。。
決定先寫平方容斥,先不管NTT的部分。
發現直接平方容斥有50分,還是挺良心的。
寫完之后果然過不了小樣例,繼續手算,然后對着樣例調系數。
調完系數就過了大樣例,爽啊。
這時候只有15min了,把這個代碼備份之后,開始瘋狂地碼NTT。
NTT部分感覺不是很難寫,也就是把式子寫在代碼里而已,但是邊界問題還是值得考慮的,雖然實際上根本不會出現問題。。。
然后延長了30min,爽快。
寫完之后過不了樣例,發現是NTT寫掛了,NTT改對之后就OK了。
這時候已經16:45了,幸好延長了半小時,AK辣~
然后開始擔心邊界問題,諸如n=0,m=0,s=0之類的,試了好多,又考慮好多,感覺沒啥問題。
又造了點極限數據,也能跑得過。
然后下午就結束了。
考試日,結束之后
imone果然不會下午T2,意料之中。
Cydiater打野剛考完的時候知道我AK了還D了我一波,沒想到他也AK了,強啊。
下午幾乎沒人A題,基本上得分都是20/30/100,看來數數題還是沒什么人會啊。。。
然后就是評測,又是各種鍋什么的。。我寫在知乎里了。
戳這里https://www.zhihu.com/question/271131295
結尾
看了榜,覺得這次HAOI高手還是挺多的。。不再是菜雞互啄了。。完全暴力也進不了省隊了。。
Primy退役了。。很難過。。卻也不好說什么。。他大概是不會買D吧。。
很多人都退役了。。。畢竟省隊只有這么點人。。皆大歡喜是不可能的吧。。