1 条题解

  • 11
    @ 2026-4-23 18:43:29

    gx,yg_{x,y} 表示 $\sum_{i,j,x \subseteq (i \cap j),(i \cup j) \subseteq y} F_i \times F_j$。

    Gx,yG_{x,y} 表示 $\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}$。

    因为 gx,yg_{x,y} 是可以好求的,因为其限制等价于 $x \subseteq i \subseteq y,x \subseteq j \subseteq y$,因此我们可以先 O(3n×n)O(3^n \times n) 计算出所有的 gx,yg_{x,y}(对每个子集做 SOS dp),然后考察所有 gx,yg_{x,y} 对答案的贡献。

    注意到 gx,yg_{x,y} 对答案的贡献是 $\sum_{X \subseteq x,y \subseteq Y} (-1)^{|x-X|+|Y-y|} \times f_X \times f_Y$。

    注意到这个式子关于 x,Xx,Xy,Yy,Y 两维实际上是独立的,也就是其等于 $(\sum_{x \subseteq X} (-1)^{|x-X|} f_X) \times (\sum_{Y \subseteq y} (-1)^{|Y-y|} f_Y)$,用 SOS dp 预处理一下即可。

    至此我们可以在 O(3n×n)O(3^n \times n) 的时间复杂度内解决这个问题。至于空间问题,考虑不去存储所有 gx,yg_{x,y} 的值,而是枚举 yy 对于所有 yy 的子集 xx 计算出 gx,yg_{x,y} 的值并将其的贡献计入答案即可,空间复杂度 O(2n)O(2^n)

    • 1

    信息

    ID
    13
    时间
    4000ms
    内存
    32MiB
    难度
    8
    标签
    递交数
    646
    已通过
    76
    上传者