[AdditionalFile153.zip](file://AdditionalFile153.zip?type=additional_file)
#153. 集合覆盖计数
标签: 传统 | 时间限制: 1000 ms | 内存限制: 114 MiB | 显示标签
通过: 160 | 提交: 278
题目描述
这是一道(集合合并卷积)的模板题。
给定一个集合 S={x1,x2,…,xn} 和一个 S 上的集合族 F={S0,S1,…,Sm−1}。
一个覆盖 C 是 F 的一个子族,满足 C 中所有集合的并为 S。
求大小不大于 k 的覆盖的数量 mod 998244353。
两个覆盖 C1,C2 不同,当且仅当存在 i 使 Si∈C1∧Si∈/C2 或 Si∈/C1∧Si∈C2。Si 和 Sj 不同当且仅当 i=j。
输入格式
第 1 行:n m k
第 2 行:s0 s1 … sm−1,si 二进制第 j 位为 0 表示 xj∈/Si,为 1 表示 xj∈Si
输出格式
1 个非负整数,表示大小不大于 k 的覆盖的数量 mod 998244353。
样例
输入
4 8 2
7 10 8 11 5 15 4 5
输出
16
数据范围与提示
- 1≤k≤n≤22
- 1≤m≤131072
- 1≤si≤2n−1
子任务
- (16 分) n≤9,m≤16
- (20 分) n≤13,m≤256
- (14 分) n≤16,m≤2048
- (25 分) n≤18,m≤8192
- (25 分) 没有附加限制