CF1837F
首先看到最大值最小就想到二分答案
当我们二分了一个
而选数的过程可以用堆来维护前缀没有被选到数的最小值
最终复杂度
能通过本题,但两个
首先二分是不太好去掉的,所以我们考虑能不能把堆给优化掉
我们考虑换一种方法来维护堆,我们不维护没选过的数,而考虑维护选过数的最大值
当一个新的数进来后,我们观察能否这个数把最大值替换掉
这时可以发现我们的操作变成了:
-
插入一个数
-
弹出一个最大值并删除
我们发现我们计算了
但这样其实有一个问题,就是如果
我们发现如果
因此如果找不到
最终复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?