摘要:
RT,主要内容涉及有 高维前缀和(子集DP),高维后缀和,高维差分,快速沃尔什变换,子集卷积。 参考资料: link1 link2 知识点合集 高维前缀和 用于求解 。 for(int i=0;i<(1<<n);i++)f[i]=g[i 阅读全文
摘要:
RT,本文探讨一些简单的分块应用,不会涉及太高深的分块知识。 PS:如有错误请不吝赐教,不胜感激 PS:代码仅供参考 PS:更新了Ynoi杂题记 分块 友情提醒:#include<cmath> 望月悲叹的最初分块 分块,优雅的暴力 分块也是同线段树等结构一样,维护区间操作的,不同于线段树和树状数组的 阅读全文
摘要:
莫队 贴一个神仙博客:莫队全家桶 莫队算法是对询问进行分块的一种算法,其本质是对暴力的优化。 这个算法主要是解决区间操作的,适用于求解那种区间 可以快速支持区间的端点移动 的问题,也是充分利用已知信息,避免重复计算的典范 莫队算法核心思想就是:对于所有查询的区间,通过合理的排 阅读全文
摘要:
省选集训-图论杂题 CF888G 到现在已经是典中典了。 考虑 boruvka 算法,根据异或性质,事实上 Trie 树也可以叫做一类 boruvka 异或最小生成树树。 所以在Trie上分治做,每遇到一个分叉点就说明有权值,将左边的拿出来查右边取最值即可。 P8260 嗯,史中史。 是这样的,首先 阅读全文
摘要:
省选集训-字符串杂题 基础子串结构太ex就不看了 CF1827C 考虑如何将一个由若干偶回文串拼接而成的串分解开。 容易发现每次从后往前删掉最短回文串就是对的。 所以问题变成求 表示 是以 为结尾的最短回文串位置。 则可以 计算,\( 阅读全文
摘要:
省选模拟4 A 小丑做法,设 为使用边权 的边连通了集合 ,里面使用了 个 的最小生成树。 转移朴素枚举,复杂度 B 是原题。 注意到一个点走过一轮后,从父亲离开后下一次访问会完全访问。 因 阅读全文
摘要:
算法原理请见 oi-wiki SAM 模板:建立SAM & 统计 endpos 大小 #include<bits/stdc++.h> using namespace std; #define N 2050500 int lik[N],ch[N][27],len[N],num=1,lst=1,mn[N 阅读全文
摘要:
这应该是第一节能够课上听懂的知识了 算法原理 SA 算法,著名的后缀数组 以下只讨论 的倍增构造 目标:求出 表示后缀字典序排名为 的后缀的起始位置。 ababa --> 53142 算法核心:倍增法。 我们考虑先求出仅考虑 \([i,i+ 阅读全文
摘要:
树链剖分的扩展方法 树链剖分一些扩展性质: 基于重标号的深度优先搜索优化的树链剖分算法 轻重边分治处理思想‘ 重边批量修改,轻边用了再查 NOI 轻重边 染色的方法比较神奇,我们考虑不这样处理。 其实还是相当于对于每个点以及其邻接点的转化,不妨让每个点代表其到父亲的边,并标记其是否是重边。 那么相当 阅读全文
摘要:
A 读错题了,真唐。 注意到是电性只和移动方向有关系,但是我们需要考虑虚实。 将其变为不交换,只变化属性,那么 只是属性变为碰撞球属性的相反属性。 因此我们考虑向左移动的球撞到一个向右移动的球后有什么变化,不妨设向右移动的球的树形分别为 \([c_0,\do 阅读全文