一些需要 历史信息 时,我们可以根据 时间 进行可持久化操作。
1. 可持久化线段树
见 1。
3. 可持久化 Trie
和可持久化线段树一样的思想,没插入一个数,新建 个节点,剩下的节点向 已有节点 相连即可。
I P5283 [十二省联考 2019] 异或粽子
可持久化 Trie 后我们考虑每个节点 ,建立一个大根堆,存 个节点除选过的, 与其余点的最大值,每次选出堆顶,更新一下即可。
复杂度 。
代码
II CF241B Friends
上一题的加强。
比较大,不考虑关于 的解法。
首先可以二分,二分 ,我们求出所有与 异或值 的个数,可持久化 Trie 可以解决,判断一下,可以找到第 大的异或值。具体在每个节点有一个 存其字节点个数,查询时找出 的点加上即可。
然后问题就转化成了找出与 异或值 的值的和,我们在 Trie 上存储所有字节点的 个数,拆一下贡献,查询时加上即可。
但是由于 异或和等于 的方案可能不止一个,所以我们需要统计一下方案数,减去多余的贡献。
时间复杂度都是 ,空间复杂度也是 ,可能需要卡卡。
复杂度极其劣,跑的巨慢,其实可以直接不用可持久化,不过我没想到。
代码
III P3586 [POI2015] LOG
树剖比较 native,我们考虑分成两个 可持久化 Trie,一个维护 序,一个维护到根路径,这样求个 ,查询一下,复杂度时 。
代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现