专栏文章
P8099 [USACO22JAN] Minimizing Haybales P 题解
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mjhetcws
- 此快照首次捕获于
- 2025/12/23 01:08 2 个月前
- 此快照最后确认于
- 2025/12/23 01:08 2 个月前
直接硬做。考虑每次插入一个点。设这个点是 同时现在是第 个点,前面已经排好序的序列是 。那么你需要找到一个后缀区间 使得所有区间内的 都属于 。
那么你就随便在 里面插就好了。但是要最优的话就要最靠前。但如果本来有 你还放它前面那不更劣了吗。于是找到第一个 的位置把 插到 后面就可以了。
然后你考虑在区间上做。我们发现区间平衡树这种操作太牛了,不太会。(这种做法可以参考 @panyf 和 @Alex_wei 的题解)
于是考虑上值域。在 [l,r] 中维护所有当前 中最小和最大的 。这个显然是可以动态开点的。然后查询的话,对于找 我们分别查找 和 中的最大 (记作 ),这个东西的后面就全部满足要求了。所以 。
然后你发现要找在 中的最小下标并且 的一颗线段树好像做不了,于是可持久化,对于每个点都新建一个版本。然后直接做二分,具体类比静态第 小的那个问题,用第 棵线段树和第 棵线段树整体作差就行了。
时空复杂度都是 。然后如果你用平衡树的话是 的,但是 fhq-treap 的话常数比较大。其他平衡树又不是很好支持分裂这种东西。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...