ABC431 解题报告

A

略。

B

略。

C

很典型的贪心。我们给两个序列降排序后,对每一个身体找到第一个小于它的头部。

D

另一个很典型的贪心。我们先钦定所有部件安装在身体,然后把总重量小于等于 \(\lfloor \dfrac{m}{2} \rfloor\) 的部件移到头部。

这是可以用背包简单实现的。

E

很典型的 01bfs 求最短路。

当然也可以直接图论建模,比如每一个点可以开四个点来接受四个方向来的点。然后直接跑 dj。

F

AGC036F 的超级弱化版。

因为限制条件类似偏序,所以我们先给 \(A\) 排序。然后很明显 \(A_i\)\(B\) 中前一个数 \(A_j\) 应该满足 \(j \in [1,r_i]\)\(r_i\) 是最大满足 \(A_j \le A_i+d\)\(j\),可以通过二分简单得到。

然后这就类似在棋盘上摆车,使车不能互相攻击(因为每一个数只有唯一的下一个数)。但是因为数是有重复的,所以我们要去重,之后存在转移:

\[f_i=f_{i-1}\times \binom{cnt_{a_i}}{r_i-pre} \]

其中 \(cnt_{a_i}\)\(a_i\) 的出现次数,\(pre\) 是小于 \(a_i\) 的数的个数,总量是 \(r_i-pre+1\) 是因为之前已经有 \(pre\) 个数进行了选取,它们占用的数我们不能再占用了。

G

首先,我们发现 \(f(l,r)\)\(A\) 的大小关系和 \(A_l\)\(A_r\) 的大小关系相反。

然后,我们可以只讨论 \(A_l < A_r\) 的情况,因为另一种情况可以将序列所有字符取反(被 \(N+1\) 减掉后得到的结果)。

接下来,我们有一个发现: \(f(l_1,r_1)\)\(f(l_2,r_2)\) 的大小关系和 \((l_1,A_{r_1},-r_1)\)\((l_2,A_{r_2},-r_2)\) 的大小关系相同。

证明是不难的,详见官解

接下来就是数据结构高光时刻。

posted @ 2025-11-09 15:17  XiaoZi_qwq  阅读(13)  评论(0)    收藏  举报