随笔分类 - 多项式 - FWT
摘要:DAG 计数 1. 不要求联通 可以枚举 DAG 中入度为 0 的点的数量,但是会算重. 钦定入度为 0 的点的数量为 $i$ 时会将 $j$ 个入度为 0 的图算 $\binom{j}{i}$ 次. 由于我们算的是全集,容斥系数就是 $(-1)^{i-1}.$ 那么就有 : $f(n)=\sum_
阅读全文
摘要:感觉是比较基础的子集 DP. 令 $dp[S]$ 表示点集 $S$ 构成的价值和,然后枚举最后一个区域就行. 也就是 $dp[S]=\sum_{T \subseteq S } dp[S-T] \times (\frac{sum[T]}{sum[S]})^k$ 化简得 $dp[S] \times su
阅读全文
摘要:终于 get 到了子集卷积的正确姿势,以前竟然都是用异或卷积写的. 众所周知,异或卷积由于涉及到乘法所以会比较慢,那我们用或卷积就好了! code: #include <bits/stdc++.h> #define N (1<<21) #define ll long long #define mod
阅读全文
摘要:题意:给定 $n$ 个点,$m$ 条边的图,求有多少子图满足子图 (即边可以任意定方向或消失)是一个 DAG ? $f(S)=\sum_{T \subseteq S} (-1)^{|T|-1} \binom{|S|}{|T|} f(S-T) 2^{E(S)-E(T)-E(S-T)}$. 这里 $E(
阅读全文
摘要:题意:给定 $1$ ~ $2^n-1$ 每个数出现的概率. 每次会随机选择一个数字,与手中的数字 or 起来. 求:期望多少次使得手中的数字等于 $2^n-1$. 题解: 考虑 min-max 容斥. $\max(S)=\sum_{T \subseteq S} (-1)^{|T|} \min(T)$
阅读全文
摘要:朴素的DP:$f[i][j]$ 表示选了 $i$ 个数,异或值为 $j$ 的方案数. 转移:$f[i][j]=\sum_{i=1}^{m}f[i-1][k]\times isprime[p]$($p$ 异或 $k$ 等于 $j$) 如果 $n$ 比较小的话可以直接进行 FWT 优化 DP. 然而,这
阅读全文
摘要:有一个 $n$ 行 $m$ 列的表格,每个元素都是 0/1,每次操作可以选择一行或一列,将 0/1 翻转,即 0 换为 1,1 换为 0. 求:经过若干次操作后,表格中最多有多少个 1. 数据范围:$1\leqslant n \leqslant 20,1\leqslant m \leqslant 1
阅读全文
摘要:令 $f[x][j]$ 表示以 $x$ 为根的子树,选出连通块的异或值为 $j$ 的方案数. 然后有 $f[x][j]=f[x][j]+\sum_{i\oplus k=j} f[x][i] \times f[son][k]$. 其中,$\oplus$ 为异或符号. 求解这个东西显然可以用 $FWT$
阅读全文
摘要:直接给出公式好了: 或卷积: $FWT[A]=merge(FWT[A0],FWT[A0]+FWT[A1])$ $UFWT[A']=merge(UFWT[A0'],UFWT[A1']-UFWT[A0'])$ 与卷积: $FWT[A]=merge(FWT[A0]+FWT[A1],FWT[A1])$ $U
阅读全文

浙公网安备 33010602011771号