10月杂题选做

一些 unrated 比赛里面的题也扔在这了,补完对应的比赛可能会放到合集。


ARC231F

tag:构造、Ad-hoc。

感觉这个题如果还要强化的话上限会相当高,他这个权值计算方式就是 min-max 容斥的二元形式。

类似于 ARC221D 的构造,感觉主要就是四步:

  • 想到因为生成方式固定所以只用想叶子节点,而且因为这个方式很有规律,你甚至不用想到 ARC221D 那种相当 Ad-hoc 的调整方式。
  • 想到肯定是先解决排列的限制弄清楚结构,然后考虑根节点 \(\min\) 的约束对应结构上的啥。
  • 想到对第一个限制(权值是排列)可以直接归纳构造,每层归纳奇偶交错放置。
  • 想到对第二个限制(根节点最小)可以直接利用前面对子树权值和的分析得到下界。

记 \(w_u\) 表示点 \(u\) 的权值,\(S_u\) 表示点 \(u\) 为根子树的权值和,默认 \(L,R\) 是点 \(u\) 的子节点,即 \(L = 2u, R = 2u + 1\)。

先探索一些规律,因为 \(w_u = |S_L - S_R|\),所以 \(S_u = S_L + S_R + |S_L - S_R|\),那么你把绝对值拆开就有 \(S_u = 2\max(S_L, S_R)\)。考虑两个叶节点作为左右子节点的情形,就是 \(S_u = 2\max(w_L, w_R)\),对这个过程归纳构造我们发现树高为 \(d\) 的子树其实有 \(S_u = 2^{d - 1} \times \max \left \{\max\limits_{u \in \text{leaf}(L)} w_u, \max\limits_{v \in \text{leaf}(R)} w_v \right \}\)。也就是 \(S_u\) 其实就和树高还有叶子节点的 \(\max\) 有关。

然后我们发现最紧的限制肯定是 \(w\) 为一个排列,这个框定了结构,肯定是先搞定这个再考虑根节点尽可能小的问题。

结合上面的观察,令 \(u\) 节点为根的子树叶子 \(\max\) 为 \(z_u\),那么上面其实就是说 \(z_u = \max(z_L, z_R)\),因此考虑所有奇数,最大和次大肯定要在不同的子树,同理第三大和第四大要在不同的子树,以此类推,一个显然的叶子节点权值构造是 \((0, 2^{n - 1} - 1), (2^{n - 2} - 1, 2^{n - 2}), \dots\),更具体地就是你考虑二进制上每一个 \(1\) 在合并过程中的贡献,如果要出现 \([1,2^n - 1]\) 内所有取值那么从根到某两个对称叶节点的链上的贡献必定是一个类似于格雷码的结构。只有这种结构才能保证每次考虑一个点的两棵子树时,高位相消低位互补。此时任意一个 \(w_u = 2^{d - 2} \times |z_L - z_R|\) 的第二项恰好是上一层未被使用的奇数,因此所有内部节点的取值为 \(1 \sim 2^{n - 1} - 1\),并且因为给每个二元组内的两个值同时加上一个数不会影响问题,所以叶子节点直接全部加上 \(2^{n - 1}\) 就好了,这样就保证了 \(w\) 是一个排列的限制。

然后我们进一步考虑根节点最小,由上面分析,设根节点为 \(S_1 = 2^{n - 1} \times x\),则它同时也满足 \(S_1 = 1 + 2 + \dots + x\),由此我们可以取到下界 \(2^{n - 2}\),你注意到像上面那样构造合并,树高从低到高的节点合并对应消掉的是从高到低的二进制中的 \(1\),所以最后剩下的 \(w_1\) 恒为 \(2^{n - 2}\),也就是下界,所以这样构造必定是最优的。

submission


posted @ 2026-10-04 21:53  Twistedmind  阅读(7)  评论(0)    收藏  举报