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\)。
因为要求是四个集合相加,我们想尽可能简洁地重新定义这四个集合且使他们不重不漏,故我们可以令:
- \(\sum A = \sum(U \cap V)\)。(属于 \(U\) 且属于 \(V\))
- \(\sum B = \sum(\overline{U} \cap \overline{V})\)。(不属于 \(U\) 且不属于 \(V\))
- \(\sum C = \sum(U \setminus V)\)。(属于 \(U\) 且不属于 \(V\))
- \(\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} \#\) 所以以后看到分成四个组可以想到用两个集合表示来简化。

浙公网安备 33010602011771号