開坑小記(\(Jun\ 19th\))
由於疫情原因,這次的兩場比賽被放在了周六周日連續兩天。
我也不知道這種變化對我來說究竟是好是壞,當然更可能是毫無影響(弱就是弱,不管怎樣都是弱)。
停課也停了一個多月了,也不知道這段時間做的題到底有沒有給我帶來什么進步。
更重要的是,心中還擔憂着下周的中考,完全沒復習,且社會又變成了開卷考(停課一個月以前背過的東西完全忘光了),這樣的我恐怕涼涼。。。
正式前言(\(Jun\ 28th\)補記)
省選結束后忙於准備中考(盡管依舊考得不怎樣),因此這篇游記開了個坑之后就一直沒去補。。。
現在中考完了,就滾回來補游記了。
\(Jun\ 19th\)
上午:最后的准備
上午就來了機房,打算最后敲幾發板子。
突然發現洛谷上居然有吉司機線段樹,這東西我只知道理論,根本從未寫過。於是試着去寫了寫,結果調出來一堆\(bug\),然后發現從根本的狀態存儲方面就出了問題,想想改起來太麻煩最終寫了一半就棄掉了。。。
接着又找到拔山蓋世的板子,盡管覺得肯定不會考,但由於之前並沒有寫過這個板子,最終還是決定去寫一寫。這次倒非常順利,一遍過了。這種東西不一遍過才不正常吧。
最后在臨出發前寫了一個\(FST\)的板子:【洛谷6097】【模板】子集卷積。感覺最近對於多項式稍微有些入門了,不過要面對\(ZJOI\),蒟蒻的我依舊不堪一擊。
出發
下午乘坐高鐵出發。
高鐵上沒網,只好默默地寫了一道題:【洛谷2150】[NOI2015] 壽司晚宴(后來到賓館之后才交的)。
實際上還口胡了另一道題,但數據范圍看小了,結果自然就偽掉了。
賓館
這次我們學校一共來了七個人,一個高二、四個高一、兩個初三。
由於同為初三,我和\(LYP\)神仙分到了一個房間。
晚上主要以看板子為主,看\(LYP\)神仙寫一道線段樹合並的板子題寫了挺久,於是也去寫了一發。
一波盲猜
晚上睡前盲猜了一下明天會考些什么,於是就奶了一波:
- 我相信明天\(T2\)絕對是線段樹,因為最近幾年\(ZJOI\)基本上都有線段樹。
- 我相信明天絕對不會考字符串。
\(Jun\ 20th\)
洛谷運勢:凶
早飯吃手抓餅。不知道我對自己的食量哪來的自信,居然點了兩個,最后吃到撐死都只吃了一個半。
考前看了看洛谷運勢,發現今天運勢是凶。
說是說凶,實際上根據我過去的經驗,似乎凶才是我的大吉?
以前做牛客網的“一戰到底”,每次運勢為凶的時候都會遇上特別簡單的題目,第一次凶的時候險些就上了排行榜,第二次凶的時候直接上了排行榜的\(Rank\ 2\)(盡管並沒有多少人做這個東西就是了。。。)。
因此,在心理作用下,今天的我似乎還是比較有自信的。
\(Day1\)
點開題面,\(T1\)就是字符串題。。。(臉直接被打爛了)
咦?\(T2\)難道不是線段樹?等等,傳統藝能?好吧,你線段樹還是你線段樹。。。
首先完整地看了一遍題面。
\(T1\)由於最近做了挺多后綴自動機題,有種莫名的自信。
\(T2\)總感覺和去年的\(T2\)非常相似,反正看看都很不可做。
\(T3\)一種\(AtCoder\)的既視感?感覺很有趣,但應該也不是非常可做吧。
最終決定先開\(T1\)。很容易想到一個\(O(n^2)\)的暴力,寫完測了測樣例,結果猛然發現此處位置不同的串只計算一次答案?!
一下就慌了起來,想了好久都只會\(O(n^3)\)的超暴力做法,單個詢問的部分分想了快兩個小時的后綴自動機都沒能做出來,最后只好先寫了超暴力暫時放着。
再去看\(T3\),本來沒啥思路,看完樣例解釋卻莫名其妙地有了些奇怪的想法,最后先胡出一個\(O(n^4)\)的\(DP\),然后輕松優化成了\(O(n^3)\)。
居然就這樣拿到了\(50\)分?
接着只好極不情願地開了\(T2\),結合去年的\(T2\),打算設\(f_{x,i}\)和\(g_{x,i}\)分別表示\(i\)次操作之后,該點權值為\(1\)的概率以及該點到根路徑上存在權值為\(1\)的點的概率。
一看似乎這樣一寫也才\(30\)分,但既然沒有別的做法,也只好試着去推式子。
最終,經過一個多小時的苦戰,終於寫完了這個\(O(nk)\)做法,\(30\)分到手。
再就是試着找出完全二叉樹的規律,打表搞了半天啥都沒搞出來。
回去看\(T1\),突然發現一個二維數點的兩只\(log\)做法(樹狀數組套樹狀數組,盡管是第一次寫這種東西,但還是非常好寫的),寫完測了測極限數據有點卡,但信仰開\(O2\)之后是能過的,預計能得到\(40\)分了。
(PS:考完之后突然發現這個東西只要改成掃描線就可以一只\(log\)了。)
(PPS:聽說還有更加簡單的暴力做法,但我不會。)
還剩半個小時左右,感覺\(T1\)和\(T3\)都沒啥得分空間了,又回頭看\(T2\)。
猛然驚覺\(T2\)的\(DP\)似乎可以矩乘優化?!
手速寫了一發,大樣例跑了\(10s\)之后居然得出了正確答案?!
然后加了一個矩乘的基本優化:循環展開。這個卡常效果果然好,一下就變成了\(4s\),相信開個\(O2\)還是能過的。
由於時間比較緊來不及對拍了,有點虛。
最終估分\(40+100+50=190\),但願\(T2\)不要掛。
下午&晚上
翻\(bzt\)博客,主要是找了些比較有趣的題目看了看。\(bzt\)這么強肯定要進隊了\(\%\%\%\)
睡前開始日常翻游記。。。
\(Jun\ 21st\)
\(Day2\)
看完題面一臉懵逼。
\(T1\)什么鬼?光樹的情況就非常麻煩了,結果還有基環樹?果斷放棄。
\(T2\)題面非常清新,簡潔又很好理解,一眼生成函數。
\(T3\)好詭異,開局就寫了一個\(10\)分的暴力,結果跑樣例的第一個小數據就跑了\(50\ min\)(你沒看錯,我並沒有寫錯單位),棄了棄了。
於是開始肝\(T2\)。
大力推了一波式子,先搞出一個粗暴的\(O(n^3)\)的做法,感覺應該還能進行什么五花八門的優化。
大致思路就是令\(g_i\)表示摸出\(i\)張不同種類的卡牌的期望步數,然后枚舉要摸出幾種卡牌來計算答案。
結果,四個小時過去了,我依舊爆零。至今仍不知道究竟是式子推掛了,還是實現炸了。
最后的一個小時就是瘋狂寫部分分。
先對\(T2\)小數據寫了個狀壓\(DP\),然后對於\(3\)個特殊數據分類討論(我之前推出來的式子處理這種東西還是有點用的),花費半個小時寫了\(40\)分。
然后是\(T1\)的\(3\)個特別簡單的部分分,估計能得\(15\)分,也來不及檢查了。
最終估分\(15+40+0=55\)。
歸程
回去的時候坐在閃指導旁邊,沒啥心情學習(盡管過幾天就要中考了),於是就看閃指導打游戲打了一路。
感覺自己還是太菜了吧。
成績(后記)
\(Day1\):\(40+100+50=190\),居然沒炸。
\(Day2\):\(5+40+0=45\),\(T1\)的分類討論掛了么。。。
不過實際上考得怎樣對我來說都差不多吧。根據閃指導的話,反正聯賽成績擺在那里,再怎么努力也都只是徒勞。
更何況,這次\(Day1\ T2\)能做出來,完全就是靠運氣而不是憑實力,如果沒做過去年的線段樹那題,我怎么可能考場做出來這種題?
不過,達成了\(ZJOI\)考場切題這一成就,還是挺高興的吧!