专栏文章

题解:CF1060G Balls and Pockets

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

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@min078w3
此快照首次捕获于
2025/12/01 18:25
3 个月前
此快照最后确认于
2025/12/01 18:25
3 个月前
查看原文
NOIP 模拟赛做到这个题,被创飞了。
第一反应是二分答案正序模拟,但是发现二分继续优化唯一途径是整体二分,而答案值域为 O(nk)O(nk),不可优化。
考虑倒序模拟,可以把序列划分为若干段,第 ii 段进行倒序模拟一轮后会加上 i1i-1
还是不好优化,考虑这些区间有什么性质。
跳段问题考虑先把询问跳到第一个跨过当前段的位置,以缩减信息规模。
这样做完后,每个点在所处段(记为第 idid 个段)的第 [1,id2][1,id-2] 个位置,记这些点再跳到下一个段的次数是 vv,容易发现,由于这些点下标差严格小于 idid,所以不同点 vv 的极差不超过 11,且取值单调,把点按位置分为两部分 A,BA,B,进一步的,经过一轮模拟后,A,BA,B 点的大小关系交换。
考虑直接使用文艺平衡树维护这个操作,具体地我们需要实现按值分裂,子树加减,找出 <0<0 的位置。
前两个操作是平凡的,找出 <0<0 的位置可以维护子树 min\min 后直接暴力,和势能线段树复杂度分析本质相同,总复杂度 O((n+m)log(n+m))O((n+m)\log (n+m))

评论

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

正在加载评论...