Day -inf
CSP-S 200, NOIP 289。
Day -inf
過了 PKUWC,100+11+10+100+28+18 = 267,低於大眾分,喜提二等。
Day -inf
竟然過了 THUSC 和 PKUSC,神奇。
lhr 也過了,可惜 zyj 沒過QwQ。
Day -1
zby 玩我的魔方被收了,難蚌。
Day 0
五點半起床,坐動車,做到晚上五點才到餘姚,好累啊。
和 lhr 去吃飯,然後上課遲到了。
沒打啥板子,畢竟我要是連板子都不會打的肯定也做不出來。
Day 1
有衣服,一個轉盤和一個袋子,不錯。
竟然不是在餘姚考,要去什麼社群學院。
然後就坐擺渡車去了。
試機,結果我的電腦上 codeblocks 彈不出執行視窗,自己搞了一個小時還是不行,於是問監考老師,然後監考老師很熱心地幫我調終端,結果過來一個巡考老師說這是系統問題,系統問題他們不負責。
……
只好現學 VScode 和終端編譯,不過感覺也還行。
lhr 告訴我有一個阿拉丁神燈很好用,不過還是用的 VScode。
中午盒飯四隻大蝦,可我不吃海鮮,於是 lhr 吃了八隻。
回酒店睡覺,下午考試。
13:30 開始。
先看第一題,好詭異,應該是數數題。第二題是個字串,再看第三題。
這不是金老師高階 5 Assign 那題原題嗎????????
只不過帶了個權,不過問題不大。
然而我已經快忘了那題這麼做了,似曾相識的場景:PKUWC2024D2T3,和 P7560 一樣的套路,然而當時只看了題面就沒管了,最後只會最低檔暴力。
於是先開 T1,不會,只會 5pts 連續自然數求和。開 T2,不會,先打了個 7pts 暴力。
於是決定還是開 T3 吧。
想了一會兒,發現大概使二分,然後維護兩個 \(dp\) 值,然後給沒定向的定一下向。大概會了?
開寫,結果寫假了,但是過了所有大樣例,無語。
發現哪裡假了,決定改成一個玄學的增量法:每輪定一些邊,什麼時候定不了了就停止。
最壞可能是 \(O(n^2)\) 的,不過應該有 76pts, 先寫上,寫完,交一發試試。
結果過了。
雖然只是 pretest,但是感覺跑得飛快,而且即使掛了也有 76pts,所以就沒管了。
再看 T2,想了一下子序列問題的經典套路就想到了等價條件:每次調 \(nxt\) 中最大的,能跳 \(k\) 次就可行。
根絕這個結論很容易推出構造:先把最後補全,再填 \(a \sim z\)。
開寫,一發過掉。
已經 200pts 了,贏。
回頭看 T1,寫了 \(l = 0\) 的 20pts,但是 \(\prod n \le 10^9\) 的暴力沒跑過去,這個資料範圍真的很無語。
已經 225pts 了,T1 感覺是個數位 \(dp\),但是我數位 dp 沒做過幾道題,應該寫不出來,所以開 T4。
這個提交答案題很好玩,發現前四個都是快速冪,後面的看不懂。
於是用而二進位制構造,結果只有可憐的 4+3+2+0=9pts,不會了。
壓根沒發現第四個樣例我的答案比原程式時間還多。
然後比賽就結束了。
lhr 沒想出 T2,可惜了,然而他 T1 的暴力過了,也是 dfs,看來我的 dfs 寫得太爛了。
和父母去吃飯,結果遇到一位很開朗的高中學長,一起吃了一頓。
聽學長說完 T1 後發現 T1 好像確實不難,只能說我不會數位 dp 吧。
感覺這個分還可以,準備迎接第二天工程題。
Day 2
八點半開考。
一看題面是 Wordle,看過 3b1b 的影片,贏。
結果發現學習材料和 3b1b 講的完全一樣,看沒看過都一樣。
開題,發現 T1,T2 只是簡單的模擬,開寫。
結果這個讀入很陰間,還寫錯一個小地方,一直調不出來。
T2 肯定是在 T1 基礎上改,於是看一下 T3。
發現 T3 好像很簡單,拿個連結串列維護一下即可,於是寫 T3,然後以一發過了。
回頭看 T1,發現哪裡錯了,改完就過了。
T2 也很快過了。
然而已經兩個半小時了。
開 T4,直接 T3 改一改。
結果還是寫錯好多地方,過的時候已經三個半小時了。
T5 是一個求解器,只剩半個小時了,感覺寫不完。
用 T4 的程式碼改,改完後交發現錯了,一看是陣列沒清零。
結果考試時間結束了,喜提 400 整。
lhr 說 T3 改一改 T5 就可以 64 了,那我 T4 改一改豈不是直接 80+!!!
還是碼力不足啊。
中午沒在學校吃,去旁邊餐廳吃,這裡的紅燒肉真的好好吃啊。
lhr 把餐卷送給一位雅禮老哥,結果發現那是個已經拿了銀牌的大佬,膜拜%%%
下午講座加講題,聽講座是一直在玩 wordle,真的很好玩。
講題,發現 T1 真的是簽到,就是一個狀壓配合數位 dp,超過 1/3 的人過掉,還有各種到大佬吊打 std,直接將從 \(O(2^d)\) 擴充套件到 \(O(d)\),神了。
不過 T2 更籤到。
T3 和正解差不多,看出題人的思路應該沒有想到我的亂搞,估計不會卡。
T4 逆天題,前三個點暴搜出最優狀態,第四個點由於 \(998244353 + 75497471 = 2^{30}\),直接累加三十次即可。五六七原來是區間求和,各種資料結構亂搞即可。
8,9 是什麼莫比烏斯變換和子集變換,這麼神奇。
最後一個點純隨機,忘了怎麼做了。
最後發獎狀,還是拿了一等,挺好。
然後就和 lhr 一起去杭州了。
Day 3
學軍中學校園真的好好看啊!
先去簽到,然後去聽講座,但是一直在和學長和 lhr 玩 wordle。
和 PKUWC 大同小異,但是學軍的校長上臺致辭,說:“今天天氣很好,看來 pku 的氣場很大,昨天還在下雨呢”。
難蚌,昨天餘姚確實在下雨。
去試機,感覺上次經驗,決定打板子。花一個小時打了一個多項式全家桶,不過感覺用不上。
我的 NTT 不知道為啥錯了,後來發現是沒有乘 \(\omega\)。
中午盒飯很好吃。
然後回禮堂休息,和 lhr 瘋狂複習板子。
下午一點就開始考試了,原來上廁所不用舉手啊。
根據 PKUWC 的經驗,爭取每天一道題加暴力打滿。
掀開 T1,串串題,T2 神馬計算幾何???????????T3 數數題。
由於最近做了好多數數題,所以初步思路:切 T1,T2 打最低檔暴力,嘗試 T3 多拿點分。
T1 大概五分鐘後就會了,列舉迴文中心,然後套兩個二分配合字串雜湊就可以了。
程式碼寫了 50min,13:55 過掉。
然後看 T2,先把長方形的寫了,後面就不會了。
開 T3,先寫了個 \(O(m^n)\) 的暴力,然後想怎麼 dp。
想了一會兒想到了,直接 dp 套 dp,維護選不選的 \(dp\) 值作為狀態即可,複雜度 \(O(n^3m^2)\),當然轉移應該更高,過掉了第二個 sub,總共拿了 35pts。
後面就感覺不太會了,於是只好回去看 T2。
不太會三角形,感覺很難,決定從 sub3 開。
發現必須要判斷每個點在不在凸包內,可是我連高中的向量都沒學過。
玩了一會兒發現一個點在凸包內等價於將凸包的邊看成向量,這個點在每條向量的同一方向。
轉化成判斷兩個向量的夾角的正負,不會叉積,但是會行列式,看過 3b1b 的影片,所以知道行列式是算面積的,面積有正負,直接看面積的正負即可。
然後一個 \(O(V^4)\) 的列舉過掉第三個 sub。
嘗試最佳化,想了很久後發先可以剪掉一些無用的,又滑了一下過掉了 \(n \le 300\)。
但是進一步就不會了。
最終 100+45+35=180pts 離場。不過比去年還是進步了很多的。
和 lhr 去吃飯,紅燒肉太好吃了。
晚上去騎車,共享單車有點難找,但還是找到了,杭州甚至有專門的腳踏車道,騎著非常舒服。
還去大蓮花裡轉了一會兒,在籃球成沒有籃球,於是和 lhr 扔瓶子,然後還踢瓶子。
玩的很開心。
Day 4
聽說今天數學考試,贏!
上午講座本來打算睡覺,結果主講人出場那一刻一看 ppt:
吉如一!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
見到本人了,激動。
自我介紹時說到某百科上描述他為 “毒瘤出題人”,這次不會他出題吧,和 lhr 趕緊開始複習吉司機線段樹。
講的很有趣,自動 AC 機,速通函數語言程式設計,還有什麼列表同態,酸雨定理等。
中午的飯依然很好吃。
下午最後一場考試了。
先看了一遍題,T1 很經典但是沒思路,T2 大 DS,T3 亂搞題?
T1 很快想到了等價條件:每個點都經過偶數次。
然後推出每個點給兩個兒子各一半,所以將最開始的點設為 1,每次將一般給兒子,最後看需要乘上幾才能使得所有都是偶數。
這不是 NOIP2020 排水系統嗎?
然後就發現 \(n \le 50000\) 和題面的提示,需要高精度。
無語,先打了不用高精度的,發現做法沒問題。
然後開始寫高精度。
發現每個分數分母都是 \(2\) 的若干次冪,所以寫了個 bitset 維護分子的大小,這樣可以通分時快速平移。
但是加法不好實現,寫了個遞迴的 \(a+b=(a\oplus b)+2(a\&b)\),以為很快。
結果最後只有 75pts,過不去最後兩個 sub。
以為是最後算 2 的冪慢了,把試機打的 NTT 複製過來,但是提速效果不明顯。
先不管了,去看 T2,T3。打了最低檔的暴力,結果 spfa 跑不過 T3 第二個 sub。
耗了一個小時也沒啥進展,只能繼續調 T1。
突然發現這個加法的實現是 \(O(\frac{n^2}{w})\),小丑了。
於是改成直接手動模擬加法,再記錄一個最高非零位,然後過了最後兩個大的,沒過暴力。
那就直接兩份程式碼拼一起交了,然後過了。
還剩一個半小時,決定衝 T2 部分分。
感覺 \(R_i = n\) 很難做,先做 \(r_i = n\),發現就是一個離線加上線段樹和樹狀陣列即可。
寫完後又去做 \(l_i=0\),也是類似的。
但是寫假了,對拍了發現需要線段樹上二分,然後就過了。
沒有時間了,最後 100+40+5=145pts 離場。
然後就趕飛機回深圳了。
Day inf
PKUSCD2T2 正解就是一個離線加線段樹二分,可惜 T1 耗太久沒時間了。