2022.7.20 闲话
有人说这个闲话太学术了,那就:
真·闲话
寻找自我真的很难。
认识自我也真的很难。
已经快一年了,
却还是难以承认我真的放手了的事实。
也不是不承认,但是,我真的有必要继续执拗于一段情意绵绵,一套铅笔橡皮尺子吗?
让我从生活中除名对别人会有任何影响吗?
不会。
有时不明白自己为什么还挖空心思,放在根本不可能收到成果的事情上面。
我是傻吗?
也许是吧。
这个是 APJifengc 的填词,根本不是 cv 的 yspm 的!
好了闲话写完了 .
注意到神鱼的两篇闲话:7.3,7.14,所以我们还是要写点学术的 .
谈时间维上分治的一些应用
定期重构类
按时间分块,隔一会做一次(真正的)操作
Period 1(根号重构)
维护一个序列 ,支持:
- 区间加
- 单点求值
强制在线 .
差分变成单点加区间求和,树状数组即可
设一个块长 ,每次修改我们不做实际修改,每 次才做一次真正的修改,差分前缀和一下可以 .
中间的询问我们直接扫一遍当前块,如果区间对单点有贡献就加上,最后再把前面的块的贡献补上(已经算好).
于是这样的时间复杂度为 ,取 得到最优复杂度 .
似乎和直接分块没区别啊
Gty的妹子树
维护一棵树,支持:
- 查询子树中点权 的个数 .
- 单点改点权 .
- 在某个点下面接一个点 .
强制在线 .
首先有一个可持久化线段树做法:
首先求出原树 DFS 序,然后前两个操作就就可以可持久化线段树乱杀了,第三个操作似乎难做,于是暴力重构 .
然后根号重构即可(需要用一个栈存询问)
动态 DFT
维护一个序列 (保证 是 2 的次幂),支持:
- 单点修改 .
- 单点查询 .
其中 定义为:
其中 是单位根 .
用类似做法可以做到 .
存在 做法 .
Period 2(二进制分组)
std :: set
维护一个集合,支持:
- 插入 .
- 求一个数的排名 .
强制在线 .
维护若干个数组,大小分别为 .
每次插入直接插最前然后强制排序,如果两个数组大小相等则合并 .
每个段最多被合并 次(因为二进制加法器的均摊分析原理),于是复杂度为 .
String Set Queries
维护一个字符串集合,支持三种操作:
- 加字符串 .
- 删字符串 .
- 查询集合中的所有字符串在给出的模板串中出现的次数 .
强制在线 .
AC 自动机 + 二进制分组,和上例类似 .
Others
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16499567.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】