【UOJ 710】魔塔 OL(贪心)(四毛子分块)
魔塔 OL
题目链接:UOJ 710
题目大意
有一个三维的网格,点有权值 a,b,维护三个操作:
加入一个点,删除一个点, 把某一个 (1,x)(1,y)(1,y) 立方体里面的点拿出来,做一次操作的最小初始值。
操作是你按某个顺序删点,先把你的值减 a,再加上 b,要保证你的数不会小于 0 的最小初始值。
思路
首先考虑给出点集怎么做。
那你不难得到一个贪心:
首先选会让总值增加的 ,那这其中我们肯定是要求从低到高,所以这些按 从小到大排。
那接着是 ,那减的总数已经确定,那我们肯定是尽可能的维持数大(在过程中),那你选某个数的时候,它的 是必减的,所以我们可以按 从大到小排。
那然后贪心看就行,接着看怎么快一点。
我们把所有点重新按这个贪心排序,然后我们考虑四毛子分块。
四毛子分块的想法是,我们选取一个很小的块,然后块内暴力处理出每一种情况的答案,然后跟之前的联系起来。
这里的话,我们就是 算出里面每个点在或者不在,对块内做贪心的结果(要记录最后的和以及答案)
然后我们在求出每一维你 包含了那些点,那三维的话就是三个点集的交。
但是会有一个小问题没有处理,就是它每个点有一个出现的区间(会删去)
那这个你拿左右两个指针扫,维护这个区间中的点集,然后再跟前面的取并即可。
然后就合并入之前的答案。
大概取 的位置,用 。
然后每次的时间就是
代码
__EOF__

本文作者:あおいSakura
本文链接:https://www.cnblogs.com/Sakura-TJH/p/UOJ_710.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Sakura-TJH/p/UOJ_710.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现