給定 \(n\) 個集合, 每個集合包含 \([1,m]\) 中的一些整數, 在這些集合中隨機選取 \(k\) 個集合, 求這 \(k\) 個集合的並集的權值的期望.
乙個集合的權值定義為, 對於所有 \([1,m]\) 的整數, 若集合中含有 \(i\) 則產生 \(a_i\) 的貢獻, 否則產生 \(b_i\) 的貢獻.
\(n\le 1\times 10^5, m\le 18,k\le 25\)
好像只有我乙個寫了一些玄學fwt操作...別人都是組合數直接碾的qaq
顯然我們可以通過求所有最終集合的生成概率來計算出最終期望. 而這個概率顯然就是個或卷積的形式.
於是我們可以fwt一發.
接著我們發現直接fwt卷 \(k\) 次可能會有重複的方案. (就像[bzoj 3771] triple那題). 於是我們需要考慮容斥.
然而這次是廣義容斥, 普通二項式反演出來是假的.
stdcall&棟棟說過廣義容斥瞎換一波係數就過了, 於是思考一些奇怪的東西來湊容斥係數.
fwt卷 \(k\) 次後得到的方案數是 \(n^k\), 而我們實際上需要的不重複的方案數應該是 \(n^\) (卷積出來的方案有序, 要自帶乙個全排列), 那麼我們需要用一些玄學係數用 \(n^k\) 湊出 \(n^\).
注意到其實 \(n^\) 就是乙個普通多項式, 那麼我們可以直接算出這個多項式的每一項係數把它作為容斥係數.
實際上就是帶符號第一類斯特林數. 用這個係數容斥一下就好了.
fwt一次後的點值可以重複使用, 所以總時間複雜度是 \(o(\sum|s|+(k+m)2^m)\).
2018HN省隊集訓D9T1 circle
給定乙個 n 個點的競賽圖並在其中欽定了 k 個點,資料保證刪去欽定的 k 個點後這個圖沒有環.問在不刪去欽定的這 k 個點的情況下最少要刪幾個點讓原圖沒有環.如果不存在答案小於 k 的解則輸出impossible.n,k le2000 好像這篇草稿鴿的時間有點久qaq 首先乙個顯然的性質是無環的競...
2018SD省隊集訓R1 D1
經過每條邊至少一次並且回到原點,我們可以想到尤拉迴路。發現尤拉迴路的特點是每個點度數為偶數,然後我們的目標就是把度數奇數的那些點通過新增一些長度盡量小的邊變成度數為偶數。新增哪些邊呢?不難想到是最小生成樹上的邊,那我們先新增成最小生成樹,其實就是每條邊可以選 不選,每個點的要求被選的相鄰邊是奇數 偶...
2018SD省隊集訓R2 D2
我們並不需要知道相對應位置的數字是不是相等,只要置換之後的hash值相等就行了。hash 函式本身相當於每個位置乘上 x 的若干次方,置換之後只要改變次方的順序就好了。具體來說,設我們的base值是m,一段區間的hash值是 n i 0s i mi i 0nsi mi,然後乙個置換的hash值是 n...