1 条题解
-
11
设 表示 $\sum_{i,j,x \subseteq (i \cap j),(i \cup j) \subseteq y} F_i \times F_j$。
设 表示 $\sum_{i,j,x = (i \cap j),(i \cup j) = y} F_i \times F_j$。
有 $g_{x,y} = \sum_{x \subseteq X,Y \subseteq y} G_{X,Y}$。
子集反演得到 $G_{X,Y} = \sum_{X \subseteq x,y \subseteq Y} g_{x,y} \times (-1)^{|x-X|+|Y-y|}$。
注意到,答案是 $\sum_{S=0}^{2^n-1} \sum_{T \subseteq S} f_S \times f_T \times G_{T,S}$。
因为 是可以好求的,因为其限制等价于 $x \subseteq i \subseteq y,x \subseteq j \subseteq y$,因此我们可以先 计算出所有的 (对每个子集做 SOS dp),然后考察所有 对答案的贡献。
注意到 对答案的贡献是 $\sum_{X \subseteq x,y \subseteq Y} (-1)^{|x-X|+|Y-y|} \times f_X \times f_Y$。
注意到这个式子关于 与 两维实际上是独立的,也就是其等于 $(\sum_{x \subseteq X} (-1)^{|x-X|} f_X) \times (\sum_{Y \subseteq y} (-1)^{|Y-y|} f_Y)$,用 SOS dp 预处理一下即可。
至此我们可以在 的时间复杂度内解决这个问题。至于空间问题,考虑不去存储所有 的值,而是枚举 对于所有 的子集 计算出 的值并将其的贡献计入答案即可,空间复杂度 。
- 1
信息
- ID
- 13
- 时间
- 4000ms
- 内存
- 32MiB
- 难度
- 8
- 标签
- 递交数
- 646
- 已通过
- 76
- 上传者