异或零数组
\(\text{Description}\):
求满足 \(a_i \in [0,V],a_i \ne a_{1 \sim i-1}\),且 \(\bigoplus_{i=1}^{n} a_i = 0\),的 \(\{a\}\) 数量。\(n \le 10^6\)。
\(\text{Soluton}\):
\[F_{n} = \operatorname{A}_{V}^{n-1} - \big(V - (n-2)\big) \times F_{n-2} \times (n-1)
\]
因为 \(\bigoplus_{i=1}^{n-1} a_i = a_n\),所以我们确定前 \(n-1\) 个数就可以确定 \(a_n\)。
但是会有重复,我们考虑容斥:钦定 \(a_n\) 与前面某个 \(a_i\) 相等,剩下的合法的方案。
用总方案减去即可。
\(\text{Description}\):
求满足异或和为 \(0\),且 \(a_{i,j} \in [0,V],a_{i,1} \ne a_{i,2}\) 的 \(2 \times n\) 的数组数量。\(n \le 10^6\)。
\(\text{Soluton}\):
设 \(F_{i}\) 不满足异或和为零的方案数,\(G_i\) 为答案,有:
\[F_{i} = F_{i-1} \times (V - 1) \times V
\]
\[G_{i}=(F_{i-1}-G_{i-1}) \times V
\]
因为要求 \(a_{i,1} \ne a_{i,2}\) 所以前 \(i-1\) 列的异或和不能为 \(0\),即为 \(F_{i-1}-G_{i-1}\)。

浙公网安备 33010602011771号