A. Strange Subset Sum

若 \(n\) 为偶数且 \(\frac n2\) 不在集合 \(A\) 中,则在 \(\frac n2-1\) 个数对 \((1, n-1), (2, n-2), \dots, (\frac n2-1, \frac n2+1)\) 中,必然至少有一个数对的两个元素都包含在 \(A\) 中,因此答案为 \(2\)。否则,首先询问 \(1, \dots, \frac n2-1\),将数对分为两类。接着,对较少那一类中的另一侧进行询问。如果结果相同,则答案为 \(2\)。否则,\(A\) 的所有值都会被确定。经过实验发现,如果可能的话,子集和似乎在 \(3\) 以下,因此可以通过 bitset DP 来判定是否能使子集和等于 \(n\)。

B. Count of Euclid Function Call

一般地,以矩阵 \(\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}\) 为根,右乘 \(A := \begin{bmatrix} 1 & 0 \\ 1 & 1 \end{bmatrix}\) 作为右孩子,右乘 \(B := \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}\) 作为左孩子。当这些顶点(矩阵)左乘 \([1, 1]\) 时构成的树是辗转相除法树(互除法树),右乘 \(\begin{bmatrix} 1 \\ 1 \end{bmatrix}\) 时构成的树是 Stern-Brocot 树。

以根为 \([m, n]\) 类似地考虑。在 \([m, n]\) 停止是因为从左孩子向上走,因此以 \([m+n, n]\) 为起点,从右侧依次乘上 \(A\) 或 \(B\),并在保持 \(\le N\) 的前提下进行乘法的方案数即为答案。

最后乘的矩阵若是 \(A\),则左边的值为最大值,因此条件是右乘 \(\begin{bmatrix} 1 \\ 0 \end{bmatrix}\) 得到的值 \(\le N\)。最后一部分中 \(A \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}\)。最后乘的矩阵若是 \(B\),结果同样是 \(\begin{bmatrix} 1 \\ 1 \end{bmatrix}\)。

因此,设 \(A\) 和 \(B\) 任意相乘得到的矩阵为 \(C\),我们只需要求出满足 \([m+n, n] C \begin{bmatrix} 1 \\ 1 \end{bmatrix} \le N\) 的 \(C\) 的个数。由于 \(C \begin{bmatrix} 1 \\ 1 \end{bmatrix}\) 本身就是 Stern-Brocot 树的顶点,这转化为统计满足 \([m+n, n] \begin{bmatrix} i \\ j \end{bmatrix} \le N\) 的互质数对 \((i, j)\) 的数量问题。

C. Equal Degree Deletion

关注某个顶点 \(v\),按照使用边的顺序,依次为它们赋予 \(\text{deg}(v)-1, \text{deg}(v)-2, \dots, 0\) 的标签。当边两端顶点给出的标签相同时,该边可以被操作。当给定一棵树时,标签会自底向上唯一确定。

为了构造标签为 \(k\) 的边,至少需要 \(2^k\) 个顶点,因此按最大标签从小到大进行某种程度的状压 \(\text{dp}\) 应该来得及,写了之后顺利通过。