远古 NOI 水题题解

训练日记 · 2024-01-05 · 439 人浏览

P1244 NOI2000 青蛙过河

每一次操作,先将荷叶铺满生成一垛,再类似二进制分组的合并。上限为 $(m+1)2^n$。

P4408 NOI2003 逃学的小孩

有结论 A 和 B 一定要在树的直径的两端。找到一条直径,并以两点跑一次多源最短路即可。

P1949 NOI2001 聪明的打字员

直接 $10$ 进制状压 bfs 可以过。

P5751 NOI1999 01串

先进行前缀和,然后每个限制都是对两个前缀和的差的限制。差分约束板子题。

P5763 NOI1999 内存分配

小模拟题,有点 CSP-S 2023 T3 的感觉。直接记录每一个被占用的内存块,暴力维护队列即可。

P7302 NOI1998 免费的馅饼

不难有 $f_i$ 表示最后一个接的点是 $i$,从 $j$ 点转移有限制 $\lvert{p_i-p_j}\rvert\le2(t_i-t_j)$,由绝对值的非负性可以拆成两个必须同时满足的条件

$$ \left \{ \begin{array}{l} p_i-p_j\le2t_i-2t_j\\p_j-p_i\le2t_i-2t_j \end{array} \right. $$

这两个限制已经蕴含了转移的时间顺序。只需进行改写

$$ \left \{ \begin{array}{l} 2t_j-p_j\le2t_i-p_i\\ 2t_j+p_j\le2t_i+p_i \end{array} \right. $$

每个点转化为了一个二维坐标,对其求一个带权的 LIS 即可。

Theme Jasmine by Kent Liao