CF1770F Koxia and Sequence
一步都没想到,一定是状态不好吧,一定吧一定吧?
加训数数!
题意
给定 \(n, x, y\),定义好的序列 \(\{a_i\}_{i = 1}^n\) 满足 \(\sum\limits_{i = 1}^na_i = x, \operatorname{OR}\limits_{i = 1}^na_i = y\)。求所有好的序列的异或和的异或和。
数据范围:\(1 \le n \le 2^{40}, 0 \le x < 2^{60}, 0 \le y < 2^{20}\)。
题解
异或和,大力抵消!根据对称性,每个位置对答案的贡献是一样的,所以 \(2|n\) 答案为 \(0\),否则只需要统计第一个位置的贡献。
\(\operatorname{OR}\) 和的限制传统方法就是容斥。那么设 \(f(y)\) 表示答案,\(g(y') = \bigoplus\limits_{t \subseteq y'}f(t)\),则 \(f(y) = \bigoplus\limits_{y' \subseteq y}g(y')\)。于是只要算 \(g\)。
接下来,考虑拆开位。令 \(a_1\) 的某一位 \(k\) 为 \(1\) 以后,\(\operatorname{OR}\) 和的限制形如 \(a_1 \subseteq y' - 2^k, a_{2 \dots n} \subseteq y'\);同时还有 \(\sum a_i = x - 2^k\)。怎么做呢?这边有个逆天的东西 \(p \subseteq q \iff \dbinom{q}{p} \equiv 1 \pmod 2\)。然后这两个限制直接变成了范德蒙德卷积,该位贡献为 \(1\) 当且仅当 \(\dbinom{ny' - 2^k}{x - 2^k} \equiv 1 \pmod 2\)。也就是 \(x - 2^k \subseteq ny' - 2^k\)。
做完了。很喜欢 OIer 的一句话:啊?