Solutions

Xor

考虑第\(i\)个二进制位,因为\(n\)是奇数,所以\(A\)中第\(i\)位\(0\)和\(1\)的个数不相等(对于\(B\)也成立)。于是可以确定\(x\)的第\(i\)位,最后再验证\(x\)是否合法即可。

Triangle

由叉积的表达式,知道面积只跟坐标的奇偶性有关,枚举每个点的类型即可。

Tranform

广搜的复杂度是\[N(1 + \frac{1}{2} + \cdots + \frac{1}{N}) = O(N \log N)\].

Product

\(v(A) = \frac{\prod_{a \in A}(1 + a) - \prod_{a \in A}(1 - a)}{2}\)

Permanent

状压动态规划

Path

如果\(x\)是可行的,那么\((x - 2)\)也是可行的,所以可以动态规划求出最长的奇数和偶数。注意负数的情况。

Multiplication

\[C[k] = (A[1] + A[2] + \cdots + A[k]) \cdot B[k] + (B[1] + B[2] + \cdots + B[k]) \cdot A[k] - A[k] \cdot B[k]\]

Matching

利用Tutte matrix可以得到很短的\(O(N^3)\)算法。

Cut

一条边可以切开,当且仅当两边联通块都是偶数。

Component

考虑联通块不包括重心,则最多只能有\(\frac{n}{2}\)的大小。于是就算包含重心的联通块的最小权值,有一个熟知的动态规划算法可以做到\(O(N^2)\)。之后点分治即可。复杂度仍然是\(O(N^2)\)。

"熟知的动态规划算法"可以参见何森的集训队论文。