a. 簽到題
把每個點向它右側比他大的第乙個點之間連邊,如果沒有那麼向 \(root\) 連邊。
那麼可以構成一棵樹。
特判一些情況之後,可以認為問題就是:
1.給某節點和它的所有兒子節點權值加上乙個值。
2.詢問一條路徑的權值和。
首先考慮如果只詢問單點的維護方法,其實就是打乙個標記表示給整個兒子集合都加上了若干權值。
每次只要統計單點的修改加上父親標記即可。
所以把這個式子拆開,分別用線段樹樹剖維護就好了。
b. 藍超巨星
對於左移的問題,可以列舉 \(s\) 這個串與 \(t\) 匹配的起始位置。
然後通過雜湊判斷字元相等的集合是否相等,雜湊的方式自然還是 \(\sum \limits_^n (i-lst_)*p^i\)。
在雜湊判斷成立的條件下,只需要判斷 \(26\) 個字元是否對位相等。
預處理出每個置換環的大小,每個字元置換到另乙個字元需要用的最短時間。
然後發現對於每個字元,都要滿足乙個同餘方程,其中模數不大於 \(26\)。
對於左移的限制,還要滿足乙個同餘方程,模數為 \(n\)。
對於同餘方程的合併,有乙個簡單的 \(o(\min)\) 的做法,不斷給乙個變數加上較大的那個模數即可。
所以這題就可以 \(o(n26^2)\) 的做完了,如果對於每個環都只做一遍合併,複雜度可以做到 \(o(n26)\)。
c. 秘密行動
容易發現每個質因子是獨立的。
所以對於每個點的每個質因子可以看做選或不選兩種事件。
二者分別有乙個代價,二者不能共存。
對於 \(m\) 條邊,其實就對應著恰好乙個選。
這個問題可以用最小割解決,然後我剛開始的建圖是這樣的:
把每個點的每個質因子拆成兩個點,分別表示選和不選,中間連上 \(\infty\) 邊。
對於 \(m\) 條邊,將 \(a\) 選向 \(b\) 不選連邊,\(b\) 選向 \(a\) 不選連邊。
然而這個做法是偽掉的,因為存在情況同時割掉了某個點選和不選兩條邊。
所以題解的建圖是這樣的:把這兩個點合併成乙個點,然後直接把邊連起來。
省選模擬102 題解
a.island 對於正負不同的情況,o n 列舉左側的位置然後計算。對於正負性相同的情況,把笛卡爾樹建出來,然後每次考慮跨過最小值的貢獻。分幾種情況 左右均不超過最小值,左右僅有乙個超過最小值,左右都超過最小值。然後順便統計上其中乙個端點為劃分點的貢獻。然後瘋狂的寫式子拆式子就沒了。做法挺簡單的,...
省選模擬101 題解
a.石子遊戲 問題可以簡單轉化為最少能取出多少個數,使得異或和為 k 顯然答案是小於 log a i 的,因為線性基已經可以拼出所有數了。所以可以考慮列舉這個答案,然後就是 dp 表示用 i 個數能否拼出 j 轉移可以用 fwt 優化,暴力做就是兩個 log 的,因為只需要一項所以手動 ifwt 可...
省選模擬100 題解
a.小b的棋盤 這種方案不好列舉的題的乙個解決方案就是考慮怎樣的方案是可能合法的。如果 k geq n 那麼一定無解,否則可以找到至少一組點的中點來表示最終的答案。容易發現取 k 1 個點至少存在乙個能匹配到的,所以複雜度可以做到 o n 2 k 如果判斷一下每個中點出現的次數,可以做到 o n 2...