题目描述
输入
第 1 行两个用单个空格隔开的整数 n,m。
第 2 行至第 n+1 行,每行 m 个用单个空格隔开的整数,其中第 i+1 行的 m 个数依次为 ai1ai2⋯aim。
输出
仅一行一个整数,表示所求方案数对 998244353998244353 取模的结果
样例输入 复制
2 3
1 0 1
0 1 1
样例输出 复制
3
提示
2 3 1 0 1 0 1 1 |
3 |
3 3 1 2 3 4 5 0 6 0 0 |
190 |
5 5 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 |
742 |
【样例 1 解释】
由于在这个样例中,对于每组 i, ji,j,Emiya 都最多只会做一道菜,因此我们直接通过给出烹饪方法、主要食材的编号来描述一道菜。
符合要求的方案包括:
- 做一道用烹饪方法 1、主要食材 1 的菜和一道用烹饪方法 2、主要食材 2 的菜
- 做一道用烹饪方法 1、主要食材 1 的菜和一道用烹饪方法 2、主要食材 3 的菜
- 做一道用烹饪方法 1、主要食材 3 的菜和一道用烹饪方法 2、主要食材 2 的菜
因此输出结果为 3 \mod 998,244,353 = 33mod998,244,353=3。 需要注意的是,所有只包含一道菜的方案都是不符合要求的,因为唯一的主要食材在超过一半的菜中出现,这不满足 Yazid 的要求。
【样例 2 解释】
Emiya 必须至少做 2 道菜。
做 2 道菜的符合要求的方案数为 100。
做 3 道菜的符合要求的方案数为 90。
因此符合要求的方案数为 100 + 90 = 190。
【数据范围】
测试点编号 | n= | m= | a{i,j}<ai,j< | 测试点编号 | n= | m= | a{i,j}<ai,j< |
---|---|---|---|---|---|---|---|
1 | 2 | 22 | 2 | 77 | 1010 | 22 | 10^3103 |
2 | 2 | 33 | 2 | 88 | 1010 | 33 | 10^3103 |
3 | 5 | 22 | 22 | 9\sim 129∼12 | 4040 | 22 | 10^3103 |
4 | 5 | 33 | 22 | 13\sim 1613∼16 | 4040 | 33 | 10^3103 |
5 | 10 | 22 | 22 | 17\sim 2117∼21 | 4040 | 500500 | 10^3103 |
6 | 10 | 33 | 22 | 22\sim 2522∼25 | 100100 | 2\times 10^32×103 | 998244353998244353 |
对于所有测试点,保证 1 \leq n \leq 1001≤n≤100,1 \leq m \leq 20001≤m≤2000,0 \leq a_{i,j} \lt 998,244,3530≤ai,j<998,244,353。