SDOI2019Round1游記
Day 0
報道日,早晨五點睡的覺,一覺醒來已經一點半了,收拾收拾東西報道去了。因為沒吃飯,坐着出租車暈車了,我讓師傅把我放到歷下大潤發,我去金拱門吃了點飯才去的2333
報道的地方碰到了 子謙。
神仙,然后就沒什么好玩的了,感覺要退役了哇……
另外今年竟然不允許試機?比賽環境只有dev而沒有vim?甚至環境是XP系統?有點東西哦
三點多打車去領秀城給初中同學同學過生日,玩到晚上八點半,省選之前浪不是能++rp嘛2333。體驗了一下玉函路隧道的恐怖效率。
睡覺的時候大概 11
點了吧?
Day 1
比賽日,抽到了2-119號,進場先敲缺省源,沒什么人管。
XP系統實錘了,但是CPU是 i5 的,感覺海星
打開壓縮包看看,嗯確實都需要密碼(霧),哎這個software題怎么把所有數據都給出來了,是鍋了?還在想要不要給監考報告這個事,后來想了想大概所有人都是這樣的吧……就沒管
發密碼以后看題:
\(A\) 題……我沒讀錯題吧?這怎么看怎么像經典題啊?我沒做過就是了,還有暴力怎么又這么多分啊?
\(B\) 題……串串題,題面還這么長,我啥串串算法也不會,棄了棄了,題面都沒有看完
\(C\) 題……啊我總算知道為什么樣例文件夾里有這個題的所有數據了!感覺好像有點好玩的樣子?不顧你確定這tm是個傳統題?
隨手打開 \(C\) 題的最后一個點……我的媽這是啥啊再見再見(
看看第一個點吧……輸出文件 \(19,~361,~6853\) 啥的?我猜這是 \(19\) 的冪次?題目編號里有個 \(998244353\), 所以這是模意義下的快速冪?好了現在我有 \(4\) 分了真開心。
回頭看 \(A\) 題去,\(O(n^2)\) 的暴力怎么有 \(60pts\)?我是不是真的看錯題了?還有這數據范圍為什么不卡 \(O(n^2 \log n)\) 啊差評。仔細看了兩遍題意覺得確實沒讀錯,於是就寫了個枚舉左右端點的暴力敲了上去, \(60pts\) 到手。由於大樣例會爆掉我的數組,所以並不能測大樣例。
然后看看還有個 \(k\) 很小的部分分,想了好久不知道怎么做,轉去想如果 \(k~=~1\) 應該怎么辦,發現還是不會,又覺得 \(60pts\) 差不多,於是就棄了。這時候還有三個半小時。
\(B\) 題直接沒有做的欲望
開始玩 \(C\) 題。第一個子任務是 \(13\) 的冪次,嗯……第二個點可以快速冪……woc第三個點怎么指數這么大?想起來有個東西叫做擴展歐拉定理,但是我早把那玩意忘了啊emmmm。
嘗試手推,推了 \(5 \min\) 突然發現因為每 \(\phi(p)\) 次是一個循環節,所以直接讀入模 \(998244352\) 就好了。 \(12pts\) 到手
對於模數未知的點,寫了個代碼找到了輸出的最大值是 \(1145....\) (我忘了是多少了,覺得模數一定離這個數很近,於是寫了個枚舉模數的程序掛機,但是大概是寫掛了,反正跑到最后也沒有跑出來。講題時說模數是 \(1145141\),真 是 個 惡 臭 的 模 數 啊 ( 迫 真
那個 wa 的點猜到了是自然溢出,於是嘗試在快速冪的各個地方不取模,然后發現並不能過樣例,當時沒有想到快速冪和暴力算在溢出的情況下得到的答案顯然是不一樣的嚶嚶嚶
於是我功能 \(1\) 就只有 \(12pts\) 了。此時還剩兩個小時左右
然后去看功能 \(2\),看的一臉懵逼,這是個什么玩意啊emmmm。等了大概半個小時突然想起來 \(p\) 和 \(u\) 會不會都有自己的含義,想想 \(p\) 是…… prime
? 那也不對啊為什么 \(1\) 是個質數啊emm……等等,給出的是 \(2,~10\),也就是說求這個區間內的質數表?看下輸出確實是這樣。
然而我從一月份開始就再也沒碰過數學了,線性篩什么的早忘了,記住個思想,手推吧……
過了數據, \(4pts\) 到手。
下面一個點……好像詢問的區間是 \(1e6\) 級別的,之前好像做過一個這樣的題,大概是用根號的素數篩后面的數?忘了,繼續手推一下,發現用埃氏篩的話每個數只會被小於根號的數更新,所以篩到根號的素數就可以篩那個區間了,\(6pts\) 到手。
下面不會了,去看 \(u\) 的部分
既然 \(p\) 是 prime
,那我盲猜 \(u\) 是 \(\mu\)!
看下果然猜對了2333,然而我並不會線篩積性函數……手推吧。以前在luogu網課聽到過大概有一個恆等式是對於質數 \(i\),有 \(f(i~\times~j)~=~f(i)~\times~f(j)\) 的?證明了一下好像是對的,於是寫了一下過了數據。
對於下面那個測試點大概是和 prime
部分同樣的做法,但是推了下埃氏篩的方法,最后寫掛了沒有調出來,於是這個部分只有 \(5pts\) 了……
下面 \(g\) 是啥啊?看不懂告辭告辭
離結束還有三分鍾的時候發現電腦上沒有掃雷真是差評,只能回頭去檢查一下代碼。然后發現我 \(A\) 題給 std::nth_element
的比較函數的參數傳得是 int
??woc幸好發現了要不然爆零了……
於是 day1 總得分 \(60~+~0~+~27~=~87pts\),SDrk59,很開心沒有掛分。也很后悔 B 題明明有 10s 時限為什么不交個while (1) 上去
中午和 蘇子鶴_Seven
以及 zzh
一起吃了金拱門,抨擊了一下題目(霧
晚上當然是繼續掉分啊,明明沖王者的人了這一放假掉到星耀三去了。
Day 2
進場看題,woc題面怎么都這么長啊……看了 \(A\) 題一會沒看懂題,滾去看 \(B\),也沒看懂,去看 \(C\) 了,蔡德仁?不可做還是沒看懂題。劇終。
仔細看了看 \(A\) 題最終看明白了,然后想了想不會做,去看 \(B\) 了。
定睛一看題面好像不那么長?仔細分析一波明白了題目要干嘛,想了想是個 sb 貪心?大的盡可能帶走大的?嘗試證明無果。這個時候已經十點了,我手里依然一分沒有,心態有點崩,果斷去了個洗手間洗了五分鍾的臉,回來決定大力對拍不證明了。用來對拍的貪心程序大概是 \(O(n^4)\) 的,因為枚舉了之間選擇的每個點看是否合法……好像和暴力一個分哎!
想了想好像枚舉到選擇一個點的的時候可以把它到根以及它子樹的點染色,只有沒有被染色的點才能被選到。這個染色可以樹剖維護,所以這樣的復雜度是……\(O(n^2 \log^2 n)\) ……告辭,這個也是暴力分。突然意識到如果暴力染色的話復雜度是 \(O(n^2)\) 的,於是拿到了 \(60pts\)。
鏈的部分分好像也是個 sb 分……直接分兩邊sort一下就好了,於是又拿到了 \(15pts\)。把問題轉化成給定一個序列求每個位置的歷史 mex
,發現好像不可做,而且剩下的時間拿不靠譜的 \(25\) 分不划算,於是就棄了。
回頭去看 \(A\) 題,發現前兩個點是大爆搜,寫的有一點復雜,但還是過了樣例。
后面兩個點可以 \(O(n~\times~m^3)\) 的DP,當時腦子抽風沒想到 \(O(n m^2)\) 的 \(50\) 分做法就很慘……。但是這個轉移寫的有點復雜,由於對題意還不是特別的理解,細節也記不住,轉移寫了很久。
調了一會后過了小樣例,大樣例依然不能跑。
然后感覺小樣例十分不靠譜,於是就去對拍,拍着拍着發現 DP 做法 RE 了?調了好久不知道怎么 RE 的,然后猛然發現數據生成器寫錯了……
修好以后接着拍發現一拍就 wa,當時還剩 \(15 \min\),xtbl,並不能調出來,我甚至不能確定是我暴力寫錯了還是 DP 寫錯了。
最后 \(5 ~\min\) 急急忙忙寫了個數據分治,這個題的得分在 \(0~\sim 40\) 之間徘徊,期望 \(20pts\)。
中午和 子謙。
還有 蘇子鶴
去恆隆吃的飯,回來講評已經完了,看了下榜果然 \(A\) 題 \(20pts\),大概也算沒有掛分吧QAQ。
Day2 得分 \(20~+~75~+~0~=~95pts\),SDrk35。
下午去和中午吃飯的兩個人瘋玩到晚上十點,去唱了三個小時歌然后吃了頓晚飯,最后苦逼的 蘇子鶴
因為出租車放不下車子只能自己騎回家qwq。
晚上QG成功讓二追三真勁吶,這大概就是我兩點睡覺的理由叭
好多人都退役了啊……我雖然 Round1 的排名能苟進 Round2,但是 NOIp 還是太爛了啊,爛到倒數第七……能不能苟進 Round2 真的不一定吶……
Day3
民間榜出來了,NOIp 成績給我拉了好多后腿,算完標准分SD總成績 rk100,顯然苟不進二輪了吶……菜是原罪,繼續努力叭qwq