把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

CF1034E Little C Loves 3 III

太优雅了!

直接暴力卷积是 \(O(n^22^n)\) 的,并没有用到小模数的性质。

一种想法是全并行,将 \(n\) 次 FWT 以及中间的卷积用一个 ull 压起来做,但是只能做模数为 \(2\) 的幂次的情况,这样可以快速取模。

另一种想法是让不满足限制的抵消掉。 \(j,k\) 卷到 \(i\) 要满足两个条件,如果只需要满足任意一个都是可以 \(O(n2^n)\) 做的。不妨假设我们现在只需要满足 \(j|k=i\)

然后我们考虑去重写每个位置的值,将其写成 \(a_i4^{\operatorname{popcount}(i)}\),最后将每项除掉这个乘上去的系数,然后 \(\bmod 4\)即可。

这样就可以满足条件,因为如果 \(j\&i\not=0\),则就会多出若干个 \(4\),会被 \(\bmod 4\) 消掉,因此可以正确求出答案。

submission

posted @ 2024-06-24 15:11  275307894a  阅读(28)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end