省選模擬2 題解

2022-03-16 19:18:58 字數 938 閱讀 3730

暴力插頭dp+網路流判斷可行性,可以拿到85分。

然而這個題看起來就很像無限之環,只要稍微改一下建圖就好了。

然而這個建圖還蠻難想到的。

因為不會做+看不懂題解+std太長,所以咕掉了。

70分部分分:考慮到狀態數很少,直接暴力狀壓dp就好了(可以用vector+map記錄狀態)。

然而題解第一步的轉化題意就很神仙:

考慮n種球,並且第i種有$a_i$個,每個球有不同的編號,總共有m個球。

現在將m個球排成一行,要求對於每種球,1號球應當排在2~$a_i$號球中每乙個球的前面。

顯然這個玩意等於m的階乘除掉每個$a_i$,表示只對一號球在最前面施加限制。

然而上述簡單的式子與題中給出的式子並不貼近,還要繼續進行擬合。

考慮列舉乙個長度為n的排列,表示每種球的1號的球出現的位置的排名。

因為確定了乙個排名,限制可以繼續進行施加,這個時候我們發現已經成功擬合出了字首和的效果。

然而與題中的式子還差了一點,也就是對於最後一種球,並不需要施加限制。

所以問題可以轉化為求m個球,滿足除了最後一種球,其他種球標號為1的球在其他標號的球前面的方案數。

這個玩意可以通過容斥來求。

因為最後一種球不受限制的特殊性,現在列舉最後一種球,設為$last$,這種球的第一次出現的位置稱為$pos$。

設$f_i$表示欽定$i$種球放到了$pos$的後面。

$g_i$表示恰好$i$種球放到了$pos$的後面。

顯然我們只要求$g_0$,這個玩意容斥就好了。

列舉欽定放到$pos$後面的組合$b$,可能放到左面的集合為$c$。

有$f_i=a_\frac-1)!}*\binom-1}*\frac)!}$。

兩邊的項分別表示內部的排序,中間乘的組合數表示將兩部分合併。

然而列舉組合的複雜度仍然沒戲,然而本題中組合的貢獻較為簡單,所以考慮揹包處理這個玩意就好了。

省選模擬104 題解

a.簽到題 把每個點向它右側比他大的第乙個點之間連邊,如果沒有那麼向 root 連邊。那麼可以構成一棵樹。特判一些情況之後,可以認為問題就是 1.給某節點和它的所有兒子節點權值加上乙個值。2.詢問一條路徑的權值和。首先考慮如果只詢問單點的維護方法,其實就是打乙個標記表示給整個兒子集合都加上了若干權值...

省選模擬102 題解

a.island 對於正負不同的情況,o n 列舉左側的位置然後計算。對於正負性相同的情況,把笛卡爾樹建出來,然後每次考慮跨過最小值的貢獻。分幾種情況 左右均不超過最小值,左右僅有乙個超過最小值,左右都超過最小值。然後順便統計上其中乙個端點為劃分點的貢獻。然後瘋狂的寫式子拆式子就沒了。做法挺簡單的,...

省選模擬101 題解

a.石子遊戲 問題可以簡單轉化為最少能取出多少個數,使得異或和為 k 顯然答案是小於 log a i 的,因為線性基已經可以拼出所有數了。所以可以考慮列舉這個答案,然後就是 dp 表示用 i 個數能否拼出 j 轉移可以用 fwt 優化,暴力做就是兩個 log 的,因為只需要一項所以手動 ifwt 可...