一道很有教育意义的题目。
首先我们有众所周知的 AND 卷积和 XOR 卷积,容易证明不同位互不干扰,拼起来可以获得 \(1+4+5\) 分的高分!
接下来我们按照 \(1\) 的个数来讨论:
- \(0\) 个 \(1\) :将这一位赋值为 \(0\) 即可。
- \(1\) 个 \(1\):如果形如
0001
那么就和 AND 卷积是一样的,那如果0010
呢?很简单啊,将第二个串的这一位反转就行!于是我们可以通过对第一个串和第二个串的反转来调整到0001
,然后 AND 卷积即可。 - \(2\) 个 \(1\):如果形如
0110
那么和 XOR 卷积是一样的,那如果1001
呢?简单!两边任意反转一个就行。但如果是0011
呢?观察发现是 \(A\) 中这一位是什么就还是什么,\(B\) 中对两边都有贡献,那么 \(A\) 就不做处理, \(B\) 将两个值变成两个的和即可。0101
和0011
是对称的。 - \(3\) 个 \(1\) 以及 \(4\) 个 \(1\):和 \(0\) 个 \(1\) 以及 \(1\) 个 \(1\) 是对称的。
因此 \(16\) 种组合都是可做的,这也相当于一个 FWT 全家桶了!
标签:XOR,0011,卷积,Pjudge,PER,运算符 From: https://www.cnblogs.com/275307894a/p/17418677.html