紀中國慶集訓 簡要題解
QaQ主要是因為題目太難寫不動blog一直在調程式……所以只好先口胡一波題解
A組10/5
T1:
題意 找
題解 我們會發現實際上只有兩種迴圈節”223”和”233”,且要求開頭再奇數位,其他的消掉之後不會再產生太多……於是只要不斷維護下一個就好了 可以用一個指標直接維護,看情況前移後移,可以發現還是線性的。也可以維護一個連結串列維護下有序序列,不過太麻煩了?
T3:
A組10/6
T1:
題意 設
題解 首先由於
於是這題就變成自然數冪和的裸題辣 有好多經典做法 某次CF的EduRound還出過一次E(好像是10左右吧)
由於我們可以證明自然數冪和是有
既然是插值法,那就是構造下函式使得函式過
我用的其實是斯特林數 懶得講辣
這題還可以用差分表搞出來 等我看完FuLan大爺的部落格再來填坑……
T3:
題意:先給出一些字串 然後動態加進去字串和查詢一些字串的公共字尾長度
題解:竟然沒看出有Trie的動態做法我是不是傻了……
(第一眼:離線把串拼在一起!SA!
過了一會:誒好像還能Hash?算了不管了
考試後:哇哇哇還能Trie動態做……)
先不考慮動態加串 倒著加字串然後丟Trie裡 亂跑LCA
然後再考慮加了串之後怎麼繼續維護LCA
我們發現給新加的點稍微維護下向上倍增的陣列就好了 於是幾乎不用加程式碼
當然離線之後樹剖和Tarjan都行(樹剖LCA程式碼好短啊)
順便%一發某個Splay維護DFS序列的Dalao?
A組 10/7
T1:
題意 給出一個DAG,開頭結尾外點數每層為k,可以將相鄰兩層之間的邊翻過來交換連線,問使得最終路徑條數為偶數的方案數 模某經典質數
題解 狀壓DP,因為只需考慮奇偶性,所以用01考慮
T2:
題意 給出n+1個集合(n是偶數),每個集合有2n個數,用一種神奇的方式給出每個數的存在性(64進位制???),然後要求找到一對集合使得交大小不小於
(吐槽) 暴力出奇跡!暴力踩標程!(誤)@Snakes用標程給的方法130+ms然後暴力1ms!
我是用bitset硬上的因為比較好寫,然後現在還是最短程式碼 另外這題原本有一個”NO Solution”然而事實證明不存在這種情況(所以沒用?)
題解 反正暴力可過,我們就只來解釋下為何暴力可過吧 正解其實是隨機n對判斷……不過好像比較慢
我們先定義一個期望,為兩兩集合交大小的平均(就是隨機選兩個集合交的大小),同時還是按照二進位制我們設一個
然後我們發現對於其中第
兩邊平方之後再除就可以得到那個期望就是
那麼在這裡期望就有
所以完全可以暴力做(暴力還挺快的)。
T3:
題意 在一棵樹上選最少的點使得每個選定的點能在經過
題解 強行貪心一波 我們會發現我們應該儘可能用完這
然後我們設