随笔分类 - 学习笔记
用来假装自己学懂了的东西
摘要:弦图与区间图-陈丹琦 ppt 弦图与区间图总结_DZYO 弦图 - OI Wiki 这部分 OI-Wiki 上写的很好,证明也很妙。 弦图 弦:指一个大于 个点的环中,连接不相邻的两个点的边。非常形象。 弦图:指图中任意环均有弦。显然弦图的点导出子图也是弦图。 团:一个诱导子图满足对于子图内
阅读全文
摘要:一棵大小为 的有标号无根树对应一个长度为 值域为 的 Prufer 序列。 故有 Cayley 公式: 个点的完全无向图的生成树有 种。 然后是转换: 树到序列 找到当前树中编号最小的叶子节点,将其父亲节点编号加入序列
阅读全文
摘要:参考好文 就是说反悔贪心有两种,一种反悔堆是需要你手动去把之前的劣解换出来,一种反悔自动机是通过类似网络流反向边一样的办法让你的贪心自动实现反悔。 P2949 贪心的选取大的,如果插不进去就把时间在它前面并且价值在它后面的换出来。为了手动换需要按时间顺序选,同时维护一个小根堆。 点击查看代码 #in
阅读全文
摘要:说起来简单但是写起来还是好麻烦。。。 首先半平面交是指给出多条向量和起点,规定只取向量的左侧或右侧,求最终得到的交。 我们只需要维护交的凸包上的直线和它们的交点。 可以 地暴力,但甚至 还要好写点?? 例题 把所有点逆时针排序,最后的交就是所有直线
阅读全文
摘要:wqs二分 wqs二分用来解决一类问题,该类问题一个突出的特征是答案具有凸性,(比如选某一类东西有贡献也有一定限制,求选 个该类物品时的最优解)并且这类问题一般在不要求选 个时能够较轻松地做出来。 首先要判断答案是否有凸性,我们可以发现比如最小生成树选 条的凸性就比较显然,每
阅读全文
摘要:虚树 虚树一般是用来优化树上一些算法的。 一般情况下,如果我们对一棵树的算法只和某些已知关键点有关,而其他点没有用,就可以建立一颗只含关键点及它们两两之间的 LCA 的树。 其实相当于在原树上抽出一棵含有关键点的树,因为 LCA 起到连接关键点的作用,所以把lca以外的点压缩掉,最后剩下的就是原树的
阅读全文
摘要:并查集中每个点维护一个信息,该信息等于从该点到根路径上所有信息之和/积/异或和,比如路径长度,或者每个点黑白染色等等信息。 在路径压缩的同时要调整信息,要把父亲到根的信息合并。 要做的事也很简单,只是在普通的路径压缩上进行一些添加。 inline int getf(int x){ if(fa[x]=
阅读全文
摘要:贪心合并,第一关键字为子树权值。为了让最大的能够尽量完全合并,所以最开始要合并一些小的,即 。然后每次合并 个。如果需要让深度最小就在排序的时候设第二关键字为当前子树深度从小到大。 然后如果是求 个不同的
阅读全文
摘要:摸一手线性基 由于线性代数没学好,所以就先不讲线性基的线代部分。 定义 线性基是从一个数集(大小为 )构造出的另一个数集(大小为 )。满足线性基中的元素任意异或起来和原数集中元素任意异或起来,两者值域相同。个人理解在异或运算下,线性基是原数集的简化。 比如对于一个数
阅读全文
摘要:刚学Z算法1ms,把上次听课写的抄过来了 Z-algorithm Z算法是用来 求文本串 的每个后缀与 的最长公共前缀。 暴力做法是从每个点开始暴力往后匹配。时间复杂度 ,让我们考虑像 kmp 和 manacher 一样进行优化。 从左往
阅读全文
摘要:后缀数组 后缀排序 对于一个字符串 ,将它的所有后缀按字典序从小到大排序,没有字符的位置默认字典序最小。如上图右侧就是排序后的后缀。 我们把 叫做 的第 个后缀。 数组 是 的第 个后缀在排
阅读全文
摘要:8.29冯巨讲完没有写,10.15被叫上去讲课,于是花了一个上午看了一下。 数位dp 数位dp用于解决一类问题:求给定区间中,满足给定条件的某个 进制数或此类数的数量。给定条件往往与数位有关,例如数位之和、指定数码个数、数的大小顺序分组等等。题目给定的区间往往很大,无法采用朴素的方法求解
阅读全文
摘要:就写下中国剩余定理好了,其实包括扩展都可以用屠龙勇士那道题的方法写式子推, 就出来了,只是中国剩余定理的做法比较巧,所以写一下。 题目: 给出多个类似 的式子,保证 之间两两互质,求 做法: 设 \(
阅读全文
摘要:貌似很多博客都喜欢用一笔画来引入欧拉路径,但像您这样的强者时无需那些繁琐的东西,我们直接进入正题。 定义: 图中经过所有边恰好一次的路径叫做欧拉路径。 如果起点和终点一样,那它就是欧拉回路。 判定: 判定当前图中是否存在欧拉路径其实比寻找更麻烦 显然,欧拉回路也是欧拉路径,但为了方便区分,下文判定中
阅读全文
摘要:字符串已经忘光了,只好花了一天时间来复习 KMP 一篇好的讲解 KMP模板 code: #include<bits/stdc++.h> using namespace std; string s,t; int n,m; int nxt[1000006]; void getnxt(){ nxt[0]=
阅读全文
摘要:欧拉定理: 前言: 数论以外怎么还有这么多欧拉定理??stO @Euler Orz 前置需要: 欧拉函数: 表示小于 的正整数中和 互质的数的个数。 手 欧拉定理: 当 互质时,\(a^{\varphi(m)}\equiv1\pmo
阅读全文