一拖再拖的省選,終日孤獨的訓練,不敢回看的文化課,一切都似乎進入死局。
記得去年 NOI 結束后,我對自己的定位是:回來好好學文化課,OI 爭取進 A 隊,拿 Au。如果再拿一年 Ag,還不如把機會讓給別人呢。
可惜我一件都沒能做到,noip 排名是去年兩倍,還為了進省隊擔憂。
停課了一個月,感覺 oi 水平還是起起落落,大搖大擺,文化課則是一個月沒接觸過了。
這段時間的訓練模式大概是每天自己找模擬賽 vp 打,包括但不限於:
- CTT 2021 Day 1 \(\sim\) 4
- CTS Day 2 (Day 1 題不全當雜題,然后一點不會做)
- JSOI 2019 Day 2
- 九省聯考 2018 Day 2
- IOI 2020
- IOI 2019 Day 1
dmoj 月賽Google Code JamCodechef Cookoff LunchtimeCodeforces Round- JOISC 2021 Day 1 \(\sim\) 4
- ZR 十連測
- USACO pt 月賽 + Open
- SDOI 2019 Day 2
- 聯考
- UNR \(1 \sim 3\) 全部打完!
COCI- UER
ICPC World Final 2020
可惜了,其中大多比賽本身就是 IOI 賽制,我也就當 IOI 賽制,這種賽制 vp 的時候很舒服。
然而感覺 OI 賽制並不是那么好模擬的,需要大樣例和對拍,平時訓練很忽視這個東西,嘗嘗忍不住說自己就交一次就算最終成績。
感覺大多 IOI 賽制打的都還不錯。OI 賽制則是崩一場趣味一場,感覺訓練不是很到位。
省選還擱着延期,還得期中考試,我不玩了,直接回去上課了。
其實我的局面還好,還有至少 1.5 年的高考和 4 月的 NOI。
清明又摸了 3 天,感覺不能這樣了啊。
省選隨緣吧。純圖一樂。
閣樓房間的角落里,你獨自描畫着地圖,懷抱着刻下終結的中標,堅信着唯一的門扉。
考前注意:
- sublime new system:
gnome-terminal -x bash -c ‘g++ $file_name -o $file_base_name && ./$file_base_name && exec bash’
- 計算空間 ;ulimit -s / -v KB
- 對拍 / 極限數據;
Day -14
上文化課。
Day -3
寫了 loj 拉格朗日插值板子。
Day 0
中午來機房打板子,沒寫拉格朗日插值。
五點跑步,不到一圈岔氣。
晚上 xtq 跟同學去吃飯,我一個就回家了。
七點很困,准備睡覺,心態在一種微妙的平衡之間。
十一點還沒睡着。
不懂。
Day 1
4:30 醒了。
擺到六點半,出門。
七點四十五,到考場。
肚子疼,但不讓進,在外面排隊。
進考場,忍着寫完了板子。
去廁所,回來開始了。
看題。
A 題進行一個模擬。
B 題差不多那意思。
C 題什么東西。
先花了 30min 進行一個 A 的寫,給的樣例最大 <= 8,而且沒有對拍方式,心說之后一定要檢驗一下。
想 b,想一半發現看錯題的,nmd,remake!看懂新題后,因為做過機器人,10min 會了 \(O(n^3)\),開始寫。
寫到 10:00,自己 gen 的數據 \(4.9s\)。卡常。
卡了 1h。
變成 \(1.5s\)。寫了 t2 的 gen 進行一個拍。
突然發現 t1 可能會訪問 \(1000 * 100 * 100\) 狀物,然后先離散化成編號寫的,復雜度就是 \(O(10^7)\)。
把這倆拍,寫了個 a 的根,特別弱,,然后也不想造強的,擺爛。
C 題,瞪了 40min 毫無收獲,不知道 flow 對不對啊,感覺會單向構造。
還剩 40min。
趕快寫 flow,過了前三個樣例,第四個沒過。
方案突然不會構造了。
還有 10min,干啥?
突然不想擺爛,開始沖 8 分。
到 12:58 寫完調完了,樂。
期望 \((0 \sim 100) + (0 \sim 100) + (0 \sim 24(?+12))\)
浮動極大,希望人沒事。
感覺 B 就是因為常數太大了導致浪費太多時間,不過整體沒崩(到目前為止。
下午、晚上狂摸魚。
晚上手腳冰冷,不知為何。
11.30 入睡。
Day 2
5:00 醒。
直接起來了。
七點四十五,特別困。
到考場,特別困。
開局把三個題都看了一遍,感覺很沒理解,A 感覺就是壽司晚宴的那個質數根號分治分組技巧優化顯著,然后容斥一下就行了?本來覺得要寫 FMT ,后來發現不是瓶頸,直接 for 了,差不多總共 2e8,想起 8e8 2s,直接寫了。
自測極限數據 0.8s,呵呵。
拍完,過了50min。
B、C 看了,感覺 B 更可做。
想了 1h,還是只會 y = 1, x = 0 的貪心,只有區區 30 多分。(事實上好像能過 \(x = y = 1\),但是沒測大樣例,呵呵)
寫了個基於括號序列的狀態壓縮有限隊列,過不去 n = 8,這就是我,assert 猜的結論根本不對。
無奈開始拼 30 多分,對拍的時候死機了兩次,浪費 20min。
還剩 1h,開 C。編了 20min 發現可以 DP,然后感覺特別陰間,有六種 case。
先寫好寫的 \(n^4\),沖了半天,發現根本過不了拍。到還剩 6min 的時候過拍了,呵呵。
只有區區 28 分。跟 12 分 \(m!\) 五五開。
總共 \((75 \sim 100) + (24 \sim 36) + (0 \sim 28)\),呵呵了。
(upd:t1 好像很慢的樣子,很容易 t。。
感覺 gap 太大,B 這種題,WC 這種題,liuzhangfeiabc 這個人,備賽的時候 xtq 和 AKEE 都讓做 AGC 我沒做,但是做了 IOI,但是訓練仍不足,這種思維題雖然感覺 cnoi 只有 zhangyibin 一個人干這個,但他每次都干這個,,,,,,,,,,,,,,,,,,,,,,,,
總結
這次省選感覺分數和去年五五開,呵呵。
對於比較套路的 D1T2、D2T1,可以較快得出做法。並且由於賽前訓練 ds 過多,寫的也挺快,只是因為卡常浪費 1h。
對於逆向區分的 D1T1,幸運的沒有掛分。
對於有思維難度的 D1T3、D2T2,自己毫無頭緒,一開始方向不太對勁,到最后也沒拉回來。
對於 D2T3,以為是不可做題,直到剩下 50min 才發現可以 dp,還好拍過了 \(n^4\),只可惜只多了十幾分,感覺分數分配非常不合理。
出分了:\(100 + 100 + 22 + 100 + 36 + 28 = 386\)。
這個成績,比上不足比下有余,zjx 和 xtq 無論如何都是無法超越的高度。
D1T2 浪費時間的原因,其實是插值 \(n+3\) 個點就夠,我寫了 \(2n + 1\)。。沒算好,感覺不如直接暴力多項式乘法,但是感覺等冪和和插值五五開,不懂。
D1T3 數組開小了,開對后可以 34,大概可以獲得所有 A + B 的數量分,不過掛 12 分在接受范圍內。以后避免,部分分盡量還是造極限數據驗證,這樣至少不會 re。
D2T1 幸運的沒有爆零,感覺還是在刀尖上走了一回。以后本機 rand 的就里時限差很近,一定要卡一下。
這場每道題基本都有了足夠的思考時間以及做題時間,分配的較為合理。
唯一的例外是 D2T3,因為誤判 D2T2 以及 D2T3 難度,導致 T2 花太多時間,導致 T3 不夠,\(n^4\) 改成 \(n^3\) 很容易,然而我常數太大,,,現場開 \(500^3\) 會卡電腦 1min,所以可能還是拿不到這分,我也認了???
D2T2 AGC 類思維題需要訓練,省選前以為 yyl 不喜歡這個,現在看來是給啥都要。
同時做剩下三道題的時候,明顯感到力不從心,想不清楚細節,自己構造、思維題太弱早就知道,可是去年 NOI21 我連套路題都做不出來,很失望,所以 vp CTT 和 CTS。思維的鍛煉感覺 CF 不夠,不如 AGC,AGC 不如 IOI,要不板刷 IOI 吧!!!
民間榜有了,大概是 rk 3,75 標准分?差 rk2 zjx 20標准分,拉 rk 4 wzj 8標准分。只看省選,全國排名大概是 10 左右?
大概應該就是這樣的排名了,變化不大?
感覺還是挺震撼,noip 后覺得完蛋了,但其實還好?加上有 400 外星人縮短人類水平差距,就相差不多了,占比也不多。事實上,我noip在 204~ 480 400 這個區間,總排名都不會變。
不過感覺這個 gap 真大,noip 落雙外星人 12 標准分,這次因為 d1t3 的數組開小,d2t2 的不會做(重點),d2t3 的分配時間少,落了擺爛的 xtq 100,zjx 60。不過他倆是全國rk1、2 感覺很恐怖d(ŐдŐ๑)
算了下自己在 JS、SC、GD、CQ 的標准分,好像分別獲得 rk 4、2、3、4 的好成績?並且標准分沒拉胯成這樣,85 左右?
好像可以做 HN、HE 等隊長?
感覺還是非常開心,之前一直覺得 A 隊遙不可及,在高二 noip rk16 后更是感覺此生無緣,沒想到我也可以做到啊。
感覺還是因為這次區分題不太需要動腦子,而且掛分的人多?應該多思維訓練啊。
毛估估了一下,如果宿舍和去年分配的一樣:
- 和 dengyaotriangle、wzj 成為室友的概率是 \(2/3\)。
- 和 xtq、crabby 成為室友的概率是 \(1/3\)。
很趣味。
upd:嗚嗚 crabby 不是第五了,好像變成了十一神秘厲害人
(暫定)之后的訓練計划:
- IOI 往年題。
- Public OJ VP
- AGC、CF Div.1、UOJ 補題、泛做。
- vp 各地省選題。(ZJOI、LNOI......)
- ACM OpenCup(?)
哎,等等,是不是缺少了點什么 CNOI 特色!!!
部分題解 / 補題:
D1T1
模擬。遞歸節點數可能是 \(1000 * 100 * 100\),那只要把每個字符串編一個號,\(O(1)\) 遞歸就行了。
D1T2
考慮枚舉最小值,按現在值分成的區間分成 \(O(n)\) 段,每段答案是多項式,前綴和后插值就行。
D1T3
賽時我想法是對的啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不用歐拉回路的!!!!!!!!!!!!!!
考慮先解決 C 部分分。
先做這樣一個匹配。
左邊是出度(或者表示上面),右邊入度(下面),兩者有邊當且僅當能帶來 1 的貢獻。
答案就是最大匹配數,建圖可以建虛電優化成 2n 點,4m 邊。
考慮任意構造一組方案,此時是若干鏈和環,考慮把環相當於是都是同向,那么任意一個地方斷開,然后嵌入學術社區(一定在鏈上)的那個位置,肯定可以做到的,於是完成了構造。
考慮有雙向匹配,先給匹配了肯定更優,考慮比如 AB 匹配,最終是 Ax,yB。變成AB,yx 那一定不劣?
所以就做完了。挺難寫的。
然后注意建圖要建好一點,我一開始是 5m 邊,2n + 2m 點,直接 t 了。。。。。。。。。。。。。。。。。。。
D2T1
對值域根號分治,按大於根號的質數對質數分組。每次欽定一個質數集合容斥,就是選的數一個都不能是有這個質數集合里的,那么枚舉小的質數集合,每個大的是一個數乘起來。預處理每個大組欽定小組一個集合的貢獻,就做完了。\(2^{14} \sum c\)
D2T2
考慮變成括號樹!!每次找一個往下推一層!!!
然后考慮從低往高考慮肯定不虧!!!!因為你考慮往下都推了,有幫助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!我考場就 sb 沒想到。
x = 0, y = 1
每次往下推是自己的權值!!!那么每次保留最大的權值不往下推就好了!!!!!!!!!!!!!!!!!!!1
x = 1, y = 1
往下推是自己權值,再加上現在還在這層的隨便選一個,
考慮這層現在有 \(t\),考慮欽定推下去的 \(t - 1\) 個,前 \(t - 2\) 個都可以靠着最小值推,然后最后一個可以靠着最小值推。那么所以每次推權值都是一個加上最小值,並且你可以把最大的留下,當前貢獻和對之后的貢獻都是優秀的!!!!!!!!!!!!所以貪心就好啦!!
x = 1, y = 1
設 \(t_i\) 為第 \(i\) 層需要往下推的個數,這個對於所有過程都是一樣的!!!!!!1
考慮 t 長這樣:1 1 1 2 2 2 2 3 3 4 4 ... 5 4 3 2 1
這時候每次往下推的權值是 \(t_i \times mn + b_i\)
\(b_i\) 是留下的權值,\(mn\) 是這層最小的權值!!!
你整體的看,這個 \(\sum b\) 相當於是所有權值 - 最后一層的權值!!!!!!!!
所以你要讓最后一層權值盡量大,然后推下去的盡量小,,
然后考慮如果 \(t_i\) 大於等於 \(3\) 那你留下次大值一定不虧噠!!!!!!!
只有 \(t_i\) 等於 \(2\) 的那個連續段有問題,后面的 \(3 2 1\) 沒有問題,\(2\) 的時候你留下最小值,肯定對的!!
考慮那個 \(2\) 連續段,就是你要選一個扔下去。考慮之后的過程都是貪心,設扔下去的這個值為 \(x\),考慮任意一種方案,答案都可以表示為關於 \(x\) 的一次函數,那么這時候想要最優 x 要么最大值最小值,所以扔下去的一定是 \(2\) 連續段中的最大或者最小,分別做一下就做完了!!!!!!!!!!!1
考試主要想不到的是從小往大推,和這個 - 最后一層權值,說明我們需要整體看!!!!!!!!!!!。
D2T3
我考場因為沒剩多少時間了。
這個題和樹上的數十分類似,我一開始思路就是確定一個點出度邊的順序,那么誰去誰的確定了,然后搗鼓半天發現需要分別記錄向上向下傳播的距離才能 dp,然后就狀態 \(O(n ^ 3)\),就寄了,頂天 64。
然后正解其實和這個狀態設計差不多,但就是優秀,就是什么呢?他記錄的是一個考慮 u 子樹的邊,然后 u 誰從父親邊上去了,一個人從父親邊下來去了哪里(距離或點編號都行)。
相較於原先那個垃圾東西記得都是:最終去哪了,這里記得兩個東西都是在子樹內的,並且肯定分屬兩個不同子樹或者是 u,這樣空間就可以 \(O(n ^ 2)\) 了,為啥這么神奇?????
不懂啊,是不是你考慮 dp 的時候,合並的復雜度是對的,但是向子樹外延展這個距離,就是不好把控的了。
然后 dp,七種情況分類討論,感覺討論清楚還是挺難的?我考場 對拍出錯了 n 次,但討論難度感覺和正解五五開啊,輸飛了。。
code、
upd:詳細題解