题解:对 T2 和 T3 的一些细节补充
串串串
https://ac.nowcoder.com/acm/contest/20107/A
主要补充官方题解的 T2 和 T3。
A
***题,不算复杂度差不多得了,显然交换 S / T 的选出区间中的任意位置不影响答案,于是前缀和即可。
B
清新题,只不过我的确不会...部分分设置不太合理。
你考虑用 O(h2w2) 的时间钦定两个点 (x1,y1),(x2,y2) 研究线段,同时令 a=∣x1−x2∣,b=∣y1−y2∣。如果你做过 仪仗队 那么很容易想到中间一共有 gcd(a,b) 个点,把这些点当作盒子,把它们拍到序列上,则我们有 gcd(a,b)−1 个盒子,n−2 个点(钦定端点必选)。如果我们令 k=⌊dis((0,0),(gcd(a,b)a,gcd(a,b)b))d⌋,则每个球放进的盒子编号差需 ⩾k。
赋予组合意义,则每个球存在「体积」的概念,且该「体积」为 k−1,考虑将其压缩, 那么答案式子就出来了 (n−2gcd(a,b)−1−(k−1)−(n−2)(k−1)),那个 k−1 是右端点已经必选了,所以少了 k−1 个盒子。
考虑优化,注意答案取决于 a 和 b,可以乘个系数来优化。
C
清新题,部分分非常暗示。
有个显然的 observation 是一个结点一定从子树中至多选两个未被选择的结点转移,那么就可以直接可并堆启发式合并什么的来转移。
主要问题是为什么不是儿子中选呢?你考虑一个结点 x,其父亲 pre(x) 只有 x 一个儿子,而 x 有三个儿子,并且 x 把其中两个儿子选完了,那么 pre(x) 一定是从 x 的另一个儿子转移上来,所以必须把子树考虑完。
D
你出你🐎的 BM 呢😅😅。