ARC214 补题

前言

我没打这场啊。

题解

只会做 A。

A - Same Sum Grid Path

容易发现斜着的格子数字相等是一个必要条件(可以构造两条路径前后相交,中间不同),举一下例又发现是充要条件。

然后就可以做了。

B - Missing Number in Graph

学生转换成一个点到所有点的异或值发现还是不会。

学生用上了字典树发现还是不会。

哈哈,原来正解不用字典树,那我是怎么过了 22 个点来着。

\(v\) 上放的卡片为 \(c_v\),设 \(c_1 = x\),那么我们可以通过 dfs 推出来其他的点表达为 \(c_v = x \oplus d_v\)

设吃掉的那个卡片为 \(ans\),根据题目描述有等式 \(\mathop{\oplus}\limits_{i=0}^{n} = \mathop{\oplus}\limits_{i=1}^{n} c_i \oplus ans\),我们可以不管前面的定值。

替换一下就有 \(\mathop{\oplus}\limits_{i=1}^{n} (x \oplus d_i)\),也就等于 \(\left ( \mathop{\oplus}\limits_{i=1}^{n} x\right ) \oplus \left ( \mathop{\oplus}\limits_{i=1}^{n} d_i\right )\),后面又是定值,所以只跟前面式子有关,也就和 \(n\) 的奇偶性有关。

\(n\) 为偶数,答案确定;当 \(n\) 为奇数,答案至少有两个,所以输出 -1

C - Divide into 4 Teams

\(sum = \sum p_i\),当 \(sum\) 为奇数时显然答案为 \(0\)

先给结论,令 \(x\) 为满足 \(\sum\limits_{i \in U} p_i = \frac{sum}{2}\) 的数量,其中 \(U\) 是下标序列的一个子集。那么答案为 \(x^2 - 2x\)

因为要求是四个集合相加,我们想尽可能简洁地重新定义这四个集合且使他们不重不漏,故我们可以令:

  1. \(\sum A = \sum(U \cap V)\)。(属于 \(U\) 且属于 \(V\)
  2. \(\sum B = \sum(\overline{U} \cap \overline{V})\)。(不属于 \(U\) 且不属于 \(V\)
  3. \(\sum C = \sum(U \setminus V)\)。(属于 \(U\) 且不属于 \(V\)
  4. \(\sum D = \sum(V \setminus U)\)。(属于 \(V\) 且不属于 \(U\)

其中 \(U, V\) 分别是序列的一个子集。

因为 \(\sum A = \sum B\)\(\sum C = \sum D\),两式相加得 \(\sum A + \sum C = \sum B + \sum D = \frac{sum}{2}\)

替换得 \(\sum(U \cap V) + \sum(U \setminus V) = \sum(\overline{U} \cap \overline{V}) + \sum(V \setminus U) = \frac{sum}{2}\)

所以 \(\sum U = \sum \overline{U} = \frac{sum}{2}\)

同理也可以得到 \(\sum V = \sum U = \frac{sum}{2}\)

那么 \(U\) 的个数就有 \(x\) 个,对应 \(V\) 也有 \(x\) 个,所以如果可以为空就有 \(x^2\) 个。(\(U\)\(V\) 互相独立)

而当 \(U = V\) 时,\(C = D = \emptyset\);当 \(U = \overline{V}\)\(A = B = \emptyset\),所以要减 \(2x\)

然后就证明了答案为 \(x^2 - 2x\)

\(\color{red} \#\) 所以以后看到分成四个组可以想到用两个集合表示来简化。

posted @ 2026-02-09 09:01  Statax  阅读(23)  评论(1)    收藏  举报