OTOJ 4863. 矩陣

題意

有一個NNMM列的矩陣,你可以選擇一些位置塗黑,其它位置塗白。

對一個矩陣,我們計算出一個長度爲NN的序列AA,以及兩個長度爲MM的序列BBCC

AiA_i爲第ii行第一次出現黑色的位置的列號,如果第ii行全白,則爲M+1M+1;

BiB_i爲第ii列第一次出現黑色的位置的行號,如果第ii列全白,則爲N+1N+1;

CiC_i爲第ii列最後一次出現黑色的位置的行號,如果第ii列全白,則爲00;

請你計算,有多少種不同的{A,B,C}\{A,B,C\}三元組可能得到,輸出答案對998244353998244353取模後的結果。

對於20%20\%的數據,1N61 \leq N \leq 6,1M31 \leq M \leq 3;

對於50%50\%的數據,1N2001 \leq N \leq 200,1M2001 \leq M \leq 200;

對於額外5%5\%的數據,保證M=1M=1

對於額外15%15\%的數據,1N20001 \leq N \leq 2000,1M31 \leq M \leq 3

對於100%100\%的數據,保證1N80001 \leq N \leq 8000,1M2001 \leq M \leq 200

題解

由於列的限制比較複雜,依次考慮每一列,對於新的一列,這列會有一些黑格子是它所在行的第一個黑格子,如果直接考慮這個方案,還需要知道每行是否出現過,不太能做。

對沒有出現過黑格子的行先不考慮,對於新增的行考慮插到原來的行之間,枚舉插完後的兩個端點,乘上一些組合數即可。發現這個組合數可以通過楊輝三角的關係轉爲一個組合數,nttntt優化即可。

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