[题解][洛谷P3594] WIL
题目描述
一段长度为n的序列,可以将其中连续不超过d个元素修改成0。
请找到一段最长的,且和不超过p的区间。
题意分析
n范围为2e6,考虑O(nlogn)的做法。
二分答案枚举可能最长的长度L,通过前缀和,以及对每个位置后d个元素的后缀和维护一个单调队列,
O(n)枚举每个位置是否可能满足sum[i]-last[i]<=p判断即可。
(之前想的时候没想出来双指针的方法,具体是在l不变的时候尽可能将r右移,r无法移动则移动l,同时维护单调队列更新答案。时间复杂度O(n))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】