摘要: 线段树合并 来来来一百种线段树,线段树怎么这么博大精深啊 今天来讲一下线段树合并: 线段树合并意义: 顾名思义,我们现在有两棵线段树,我们合并他们,就是建一棵新的线段树来包含这两棵线段树的信息,不难发现,对于普通线段树,在同等规模下,两棵线段树的结构是相同的,这时候直接按位进行合并就行了,不需要设计 阅读全文
posted @ 2025-05-22 09:31 Zom_j 阅读(41) 评论(0) 推荐(1)
摘要: 本蒟蒻动态规划实在是太蒻了,特此写一篇学习笔记 update:2024/11/26 :本来这个帖子所有的代码都是可展开的,本蒟蒻为了一己私欲,为了让帖子看起来更长,删除了这个功能 update:2025/1/20:腥的一年,DP太难了,排列组合也好难,遂AFO,于是缓缓,来 被迫 更新 简介 动态规 阅读全文
posted @ 2025-05-20 21:51 Zom_j 阅读(34) 评论(0) 推荐(0)
摘要: 我们来写一下区间第k小啊:P3834 【模板】可持久化线段树 2 才学了主席树发现根本不会用啊QAQ 想到了0种办法将这个题和主席树联系啊,看看题解来梳理一下思路 先将原数组排序并且离散化:4 3 2 2 1 5 6 ​ 1 2 3 4 5 6 令原数组长度为\(n\) ,对于原数组,统计\([0, 阅读全文
posted @ 2025-05-20 21:09 Zom_j 阅读(25) 评论(0) 推荐(2)
摘要: 一个显然的性质是,将最大的数向最右交换一定不劣。 在最大的数就绪之后,再处理次大数,依次下去直到处理完整个序列。 在逐级交换的过程中,会将较小数向继续左移,所以我们要统计一个数左边比它大的数,即逆序对。 我们设左边数的个数 \(k\),这个数初始位置 \(x\),以及需要交换到的 \(y\) 那么这 阅读全文
posted @ 2025-05-20 08:12 Zom_j 阅读(18) 评论(0) 推荐(1)
摘要: 观察题意,首先删边这个操作本身就不好做,在删边的过程中,连通块也会越来越多,并不见得删边是好做的。 所以考虑正难则反,在加边的过程中统计新增的行星对。 由于加到最后是一棵树,所以不会出现加边加到同一个连通块里,即每次加边统计两个连通块之间的点是否合法即可,考虑如何去统计方案数。 对于每个联通块,钦定 阅读全文
posted @ 2025-05-20 08:11 Zom_j 阅读(10) 评论(0) 推荐(1)
摘要: 要解决这道题,我们首先就要求出一个排列的完美子序列的最大长度是多少。 贪心地考虑,若要使因数更多,相邻数的差距就要更小,那么排列为 \(2^{k},2^{k-1},2^{k-2} ... 2^{0}\) 时最优,其中 \(2^{k}<=n\)这样我们就锚定了最大的长度。 接着就考虑在这个最大长度下, 阅读全文
posted @ 2025-05-19 18:59 Zom_j 阅读(32) 评论(0) 推荐(3)
摘要: 题面传送门 众所周知,可持久化线段树存了多个版本的线段树,何为多个版本? 以这道题为例,操作 1 要求我们修改某个版本的线段树;操作 2 需要访问一个版本中的值。 那么这个版本就是相对于每一次修改的不同时期的线段树。 如图所示,这是一次可持久化操作,在原来这颗线段树中,我们修改了编号为 \(4\) 阅读全文
posted @ 2025-05-17 16:28 Zom_j 阅读(31) 评论(0) 推荐(2)