专栏文章

CF207B3 Military Trainings 题解

CF207B3题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@mir1qasf
此快照首次捕获于
2025/12/04 14:19
3 个月前
此快照最后确认于
2025/12/04 14:19
3 个月前
查看原文
You can view the English version of this solution.
图片托管于 Github,若加载失败请使用加速器。
首先容易想到把序列复制一遍,破环为链,每个询问即查询子段答案。
fif_i 能从 j=xj=xj=yj=y 转移而来,考虑一个贪心。
其中 P(k)P(k) 表示 fkf_k 能从哪些点转移而来,即 P(k)=[kpk,k1]P(k)=[k-p_k,k-1]
由于 k1P(k)k-1\in P(k) 恒成立,我们无需考虑 [ipi,k1][i-p_i,k-1] 这段区间的贡献。而 [ypy,ipi][xpx,ipi][y-p_y,i-p_i]\subseteq[x-p_x,i-p_i],即所有能转移到 yy 的点都能转移到 xx,因此选择从 xx 转移而来即可。这也就是说,从 kpkk-p_k 较小的 kk 转移来是不劣的。用 ST 表维护之,复杂度 O(nlogn+ans)\mathcal{O}(n\log n+\text{ans})
你交了一发,并发现这个东西在模拟赛过了。可以使用倍增预处理出跳 2n2^n 步能跳到哪,优化成 O(nlogn)\mathcal{O}(n\log n)

评论

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

正在加载评论...