lxl ppt 学习笔记
学习 lxl 的 nb ppt。
不知道能不能看得下去。
动态分块
经典问题1
区间加,区间小于等于 x 个数。
直接分块,维护每个块的 tag,以及这个块排序之后的数组。
散块直接查,整块在块上二分。
Ynoi2017 由乃打扑克
区间加,区间第 小。
其实就是上面这玩意套个二分。
注意可以把散块提前拼起来,变成一个假的块,查散块的时候在这上面二分,优化一下复杂度。
LG3863
扫描线扫序列,分块维护时间。
就变成了区间加,区间小于等于 个数。
莫队
本质:
AHOI2013 作业
区间 中值在 内的不同数个数。
莫队,值域分块。。
Ynoi2016 这是我自己的发明
这题之前模拟赛出过。
首先换根是假的,你可以把一棵子树拆成不超过两段 dfs 序。
然后把它的贡献强行拆成一堆前缀。
BZOJ4241
感觉这题可以用回滚莫队做。
不是很懂值域分块的做法。
哦懂了。
本质不同的答案只有 种。
排序处理一下它们的大小关系。
然后记录一下这个状态加一会到哪个,减一会到哪个就行了。
然后用一个值域分块的东西 就行了。
LG3245
记录一个 。
表示 。
特判 。
然后莫队就行了。
区间众数
经典题。
LG3604
考虑一个字符串能排成回文串,要么字母出现次数全是偶数,要么出现次数只有一个奇数。
那么 。
记一下 的方案数就行。
,。
经典题2
查询区间逆序对个数。
比较 trivial 的算法是莫队之后套一个树状数组。但是这玩意多个 log。
考虑莫队之后套一个值域分块。就能把 log 砍掉了。
莫队二次离线
考虑莫队的每次转移,一定是一个点到一个区间 的答案;。
你把这个区间拆成两个前缀。
然后你做一个序列上的扫描线求出这几个询问的答案。
至于把答案 update 到莫队的过程,就比较 trivial 了。
树上莫队
有个东西叫欧拉序(括号序),大概就是一个点在进入的时候入序一次,在出去的时候入序一次。
在实现莫队的时候,维护一下这个点当前有没有在区间里。如果它没有在区间里,就把他加进去。如果它在区间里,就把它删除。
之后注意一条链的区间。
如果 是 的祖先,那么就是 。
否则,设 ,区间就是 。在这种情况下,要注意 的括号序是完全包含这个链的,无法被查到。所以你特殊处理一下 的贡献就行了。
SPOJ10707
上面树上莫队的板子题。
回滚莫队
如果插入操作容易实现,删除操作比较难搞,可以用回滚莫队。
它是用较多的插入来代替删除。
具体实现是把 属于块 的询问都放在一起,然后按照 排序。
如果这个询问属于同一块,就暴力。
否则维护一个 指针,暴力向右跑。
对于每个询问,强制把左端点拉到 ,然后往左加就行了。
经典问题3
查询区间 内最小的 。
比较暴力的算法是莫队+数据结构,要求支持查询前驱后继。(平衡树之类的)。
正解不是很懂。
正解会了。
一般的回滚莫队是插入比较容易,删除困难。
有一种数据结构叫链表。
所以这题删除比较容易,插入困难。
那么你就把回滚莫队的操作顺序 reverse 一下就行了。
LG5906
上面回滚莫队的板子。
JOISC2014D1T3
也是上面回滚莫队的板子。
BZOJ4358
这题我有一个口胡的算法。
维护一个值域。插入一个数,把相邻的两个区间 merge。
删除的时候,考虑把两个区间删除。
那么这样操作一次,产生的新答案的个数是 的。
直接上值域分块就行。
复杂度 ,默认同阶。
LG5386
的高论是啥啊,不会啊。
考虑把值域 01 标号,回滚莫队。
然后每次 insert 的时候暴力线段树。
复杂度看起来是 。
静态分块
在没有修改的情况下,认为静态分块是莫队的子集。
区间众数(LG5048)
太经典了,太 trivial 了。
经典问题4
强制在线,查询区间逆序对。
考虑逆序对的贡献,大力分类讨论。
类似于整块 整块,整块 散块,散块 整块,散块 散块之类的。
那么这些个子问题都比较容易。
经典问题5
询问 内最小的 。
还是像上面一样大力分类讨论。
根号分治
概念没啥好讲的。
经典问题6
给一个图,点权加,查询相邻点权和。
直接对度数根号分治就行了。
经典问题7
给一个序列,给出 查询最小的 使 。
那么对 的出现次数根号分治。
次数多的就预处理。
次数少的直接归并。
SHOI2006 Homework
那么按照 根号分治。
如果 ,每次就直接更新就行了。
如果 ,考虑 。
那么枚举 ,直接值域分块就行了。
Ynoi2015 此时此刻的光辉
那么按照 分治。
小的只有 168 个质数,直接前缀和就行了。
大的每个数不超过两个,当场莫队。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!