DTOJ 4875. 西行寺無餘涅槃

題意

西行寺幽幽子(Saigyouji Yuyuko)是白玉樓的大小姐

幽幽子餓了,廚子妖夢準備了 kk 類菜,第 ii 類菜有 aia_i

幽幽子有 nn 個用餐計劃,每個計劃中幽幽子會選擇一類菜中的一種喫掉,並獲得一定的美味值

具體來說,如果幽幽子在第 ii 次進食中選擇了第 jj 類菜,那麼會獲得的美味值

幽幽子最後獲得的美味值是每次進食的美味值的異或和

幽幽子想嘗試所有不同的美味值,所以她希望知道,對於每個 x[0,2m1]x \in [0,2^m-1],最後得到的美味值爲 xx 的方案數是多少

答案可能很大,你只需要求出答案對 998244353998244353 取模之後的結果

對於所有的數據,m+k20,k10,0pi,j2m1,0ai<998244353m + k \le 20,k \le 10,0 \le p_{i,j} \le 2^m − 1, 0 \le a_i< 998244353

測試點編號 nn \le mm \le kk\le
1 10610^6 19 1
2~3 10310^3 10 10
4 10610^6 14 2
5 10610^6 16 2
6 10610^6 18 2
7 10610^6 10 3
8 10610^6 14 3
9 10610^6 17 3
10 5×1055 \times 10^5 12 4
11 5×1055 \times 10^5 16 4
12 5×1055 \times 10^5 10 5
13 5×1055 \times 10^5 15 5
14 2×1052 \times 10^5 8 6
15 2×1052 \times 10^5 14 6
16 2×1052 \times 10^5 6 7
17 2×1052 \times 10^5 13 7
18 10510^5 4 8
19 10510^5 12 8
20 10510^5 11 9

題解

直觀的想法是把每個用餐計劃看作一個2m2^m的多項式,對它們分別求FWTFWT之後對應位相乘,再求IFWTIFWT

但這樣效率不行,考慮如何對每一位較快地求出所有用餐計劃的FWTFWT該位的值的乘積。由FWTFWT的定義發現每一位的值只有2k2^{k}種情況,考慮計算每一種情況的個數。

枚舉kk類菜的每一個非空子集,在每個用餐計劃中把對應位置下標異或起來的下標對應的值設爲11,把這nn個加起來做一遍FWTFWT,可以得到一個關於每種情況個數的方程。這2k12^k-1個方程在加上所有情況和=n就形成2k2^k個方程和2k2^k個未知數,又發現這些方程的形式與FWTFWT很像,即對每個方程的右邊一起構成的多項式做IFWTIFWT即可求出每個未知數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章