专栏文章

NOIP 2025 题解

个人记录参与者 10已保存评论 10

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
8 条
当前快照
1 份
快照标识符
@mimyrrkh
此快照首次捕获于
2025/12/01 17:45
3 个月前
此快照最后确认于
2025/12/01 17:45
3 个月前
查看原文
一个月没做题了,手感全无,哎。

可能要挂很多分,我无话可说。

T1

拆分成:代价为 xix_i 的一个糖果,与代价为 xi+yix_i+y_i 的无限个糖果。贪心选择 xx 最小的若干糖果与 xi+yix_i+y_i 最小的糖果即可。

T2

考虑什么时候不优。也就是,你有一个大小为 22 的放不进去跳过(但实际上把某个大小为 11 的扔掉你就能放进去了)。
考虑枚举这个 22 与这个 11,然后发现贡献是一堆组合数和 22 的幂,容易做到 O(n2)O(n^2)

T3

【不确定算法正确性,但是他通过了所有大样例】
类似费用延迟计算的想法,如果子树的 mex 为 vv,那么其中所有 >v>v 的数我们不需要知道具体值,我们称之为自由量。
然后调整法弄一下发现,每个点它的 mex,主要取决于它的某个儿子——也就是说,最优情况下每个点的 mex 将会是它某个儿子的 mex 加上一些东西。这样把每个点和他的关键儿子配对,得到了一个树剖分。
树剖分的好处是,虚边是无用的,我们可以直接断掉。然后每个点它会在其某个祖先处从无用点变成有用点,它的贡献为——将某条实链的一个前缀的 mex 全部加 1
我们可以快乐的树上 DP 了,复杂度 O(nmlogn)O(nm \log n)

T4

首先,如果 r2lr \le 2l,存在一个显然的做法:ii 到左右某个端点的距离一定 l\le l,那么我们对每个 jj 计算以他为左端点的符合要求的子段的最大权值 mjm_j,让 resires_imaxil+1jimj\max_{i-l+1 \le j \le i} m_jmax\max 即可,然后翻转序列再做一次。
因此我们可以把 [l,r][l,r] 拆成 [l,2l][l,2l][2l+1,4l+3][2l+1,4l+3]\cdots,这样在 O(nqlogn)O(nq \log n) 的复杂度内解决了本题。
进一步的,预处理 l=2k,r=2k+1l=2^k,r=2^{k+1} 的答案,就可以做到 O(nq)O(nq)
过不去,妈的。

评论

10 条评论,欢迎与作者交流。

正在加载评论...