专栏文章
题解:P14638 [NOIP2025] 序列询问 / query(民间数据)
P14638题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqpr776
- 此快照首次捕获于
- 2025/12/04 08:44 3 个月前
- 此快照最后确认于
- 2025/12/04 08:44 3 个月前
先以每个区间左端点为横轴,右端点为纵轴建一个坐标系,更直观。
在这个坐标系中,查询 是这些区间和的最大值:

考虑分成两块:

因为每次查询同时算 个位置的答案,所以上面平行四边形的那一块可以从左往右扫,用单调队列维护列,再用ST表算每一列的最大值:记 ,,则每一列的最大值为 。
但下面那一块并不好算。
但我们发现,如果 ,答案可以用两个平行四边形覆盖:

其中横向的平行四边形可以从上往下扫时类似地计算。
如果 ,可以覆盖两个平行四边形后转化为 的情况:

递归计算,时间复杂度 ,期望得分60~65pts。(赛时止步于此)
实际上,若 ,我们可以将 拆成 这些左端点的两倍不小于右端点的区间,中间可以预处理后用ST表记录,左右直接计算,时间复杂度 ,有些卡常。
另一种做法(其它题解)是按一开始的想法这样覆盖下面一块:

代码洛谷没过就不放了。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...