1. 程式人生 > 其它 >JSOI2022退役記

JSOI2022退役記

本來是清明節考的,但是由於疫情推遲了兩週,苟活.jpg

day 0

隨便打了打板子,好像巧了些maxflow,fft,tarjan,快讀

下午去試機,突然發現是linux only,晚上惡補了一下

day 1

凌晨五點半就行了,還頭疼(寄)

到了吹了會水,然後就進場了,鍵盤滑鼠都挺差的。

T1開場大模擬,心肺驟停

T2一眼了40分,口胡了下正解

T3,你媽什麼魔怔題,看起來和尤拉路或者網路流有關

寫T1,寫一半電腦宕機了,幸好我有邊寫邊儲存的習慣,而不至於jyy來幫我重啟linux時程式寄了。

一半的寫法看起來可能是五次方的啊,然我我改了個重標號建圖的做法,但是沒發現#define a 這種會出問題

T2沒花多久就寫完了40pts,想想後面的插值不是特別好些,遂放棄

然後寫T3,先寫了個狀壓的8pts,分少的可憐,後面寫了20pts的輸出樓上樓下個數,想寫那檔分的構造的,但是沒寫出來

出考場以為day1 100+40+28=168

但實際是20100+40+28=88168

需要攢波rp

day2

已經沒有什麼好害怕的了,緊張的情緒少了不少

早上到也是先吹了會水。

開題,T1看起來是個根號分治,但是具體怎麼搞還不是很懂

T2括號序列,一生之敵。

T3看到只有一個小樣例,我也沒啥思路,遂潤。

開T1,發現一個數只能有一個>sqrt的質因子,所以可以分類,然後關於小質因子是個or卷積形式

寫出來一個\(O(\sum c * 2^{14} * 14)\)

的做法

手造幾組樣例發現掛了,實際是因為有些大質因子的貢獻,我沒有計算。

發現實際是個帶刪除的fwt,顯然fwt後的按位乘是好撤回的。

這樣子正確性對了

但是顯然並不能拿到非常多的分

首先正fwt時,只有兩項,我們可以手動展開

逆fwt時,我們只需要根據組合意義去容斥,就能少個log

然後再是刪除,我們要求2^14個數的逆元,需要一個線性求逆。

這就是我考場上寫的\(O(\sum c*2^{14})\)

考完後知道43實際也是小質數,複雜度可以除個2

T2發現4,5是數逆序對。

寫了一下T3全排列。

然後最後衝了個T2的12分全排列+最短路狀物

最後就去檢查了

出考場期望得分100+20+12=132,pmt好高啊,我寄了

兩天加起來最多100+40+28+100+20+12=300,已知day1T1掛了,希望其他題不要掛/被卡常