题解 P8120 「RdOI R3.5」RMSQ

首先想这个排列怎么用,发现可以将 ai 改为 aib 中的下标,查询变成区间最长子序列,满足连续递增。

有很显然的 dp fi=flstai1+1lstai 表示 ai 最后出现位置。

考虑莫队,右端点加入是简单的,删除是困难的,考虑不删除莫队,记 gi 表示以值 i 开始的最长子序列长度,右端点每次加入时贡献到 gaifi+1 上,左端点加入时直接令 ans=max(ans,gai+1) 并更新 gaiO(nq)

强制在线,考虑分块。整块之间答案预处理,散块内部直接暴力。散块对整块,对块 j 预处理出 [sj,i][i,tj] 的答案。散块对散块,类似回滚莫队做法,利用右散块每个数的答案贡献到初始值的位置,扫左散块同时更新,令 B=n,时间复杂度 O(nn+qn),空间复杂度 O(nn),好像不太卡常。

posted @   Terac  阅读(13)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示