Tricks
一点点显然但是会忘记的东西。
结论题,事实上很多时候贪心全选是对的。
扫描线
P7530 [USACO21OPEN] United Cows of Farmer John P
没地方写导致的 。
我们发现大致要写一个麻烦的偏序,但是如果我们维护一个扫描线,仅仅更新能更新的地方,就是我们不关心后继,扫到新的撤销前驱即可,所以我们可以变成类二维数点问题,写一棵维护系数的线段树即可。
大致上是在新的地方往前驱以前都加一,撤销前驱的系数即可。下面有形式化的代码。
P5926 [JSOI2009] 面试的考验
考虑偏序挂点。
考虑往某个点挂上 假设我们已经在 上挂上去了,我们发现如果要在 上挂上要满足 。
那么值域就满足折半,即只有 个点,算出来即可。
分治,关键字 “除开一项的所有”
CF1442D Sum
妈的,学这么多年终于学到了!!
结论:必然全选完数组,然后剩下的选一个单个的。
证明:考虑选出数组,, 若都没选完,那么考虑选更牛逼那个接在后面。
但是我们咋做那个?
考虑分治,求 时先插 或者求 先插 即可。
事实上,不如线段树分治。
选取若干路径的问题
或者是 XOR,那个题是点边转化。
[AGC010C] Cleaning
这一类问题考虑从子树内连上去的和子树外的。
不妨设子树外的决策为 ,这个一般要记下来。
那么考虑到 这是子树内连出去的,那么可以计算出 这些是经过这个 这个点的。
接下来除了这个,还要考虑子树经过 匹配的问题,这个问题考虑最大值是否超过一半即可。
可以归纳证明。
换根 LCA Trick
三者总有两种相等。
走一步,算两步
CF1749F Distance to the Path
考虑记录 为 子树内距离 的修改和。
考虑链上的 这些的重复消除,维护到 距离为 的即可。
然后考虑每次爬树,不难发现跳到父亲那么要算的由 变到了 中间还有一个元素的 gap,那么考虑给 加上就可以了。
然后开二十个树状数组维护链上的 tag,然后考虑维护就直接差分,然后每次查询子树和即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话