随笔分类 - 模板
各种板子
摘要:据说isap比dinic快。 参考:https://www.cnblogs.com/owenyu/p/6852664.html 我太懒了 #include <iostream> #include <cstdio> #include <queue> #include <cstring> #define
阅读全文
摘要:以前一直偷懒用的封装好的或者py。。。 现在依旧很懒Orz 有高精加,高精减,高精乘低精,高精除低精,比大小,输入输出 cpp struct Big{ int s[10005];int len; Big(){memset(s,0,sizeof s);len=0;} void input() { sc
阅读全文
摘要:1.费马小定理|欧拉定理 由费马小定理得当p为质数,(a,p)=1时,ap-1≡1 mod p 所以ap-2≡a-1 由欧拉定理当(a,p)=1但p可以不为质数,aΦ(p)≡1 mod p 2.扩展欧几里德 设a的逆元为x,则可以视作ax≡1 mod p 可以视作 ax-bp=1 然后用扩展欧几里德
阅读全文
摘要:郝神并没有令我明白这个。 但是巨神的题解太强了。 #include <iostream> #include <complex> #include <cmath> #include <cstdio> #include <cstring> using namespace std; const int N
阅读全文
摘要:修建模板库 kmp就是利用已经匹配过的信息降低复杂度。 每次记录当前位置的最长的后缀等于前缀,然后如果发现当前节点不能匹配,就直接往前跳nxt进行匹配。 #include <iostream> #include <cstdio> #include <cstring> using namespace
阅读全文
摘要:结论:一个图的生成树个数等于它的度数矩阵减邻接矩阵得到的矩阵(基尔霍夫矩阵)的任意一个n 1阶主子式的行列式的绝对值 证明:不会 求法:高斯消元 例题:[HEOI2013]小Z的房间 cpp include include include define int long long using nam
阅读全文
摘要:杜教筛模板题。 求欧拉函数和莫比乌斯函数的前缀和。 鼻炎犯了,证明改天写。。。。 (大佬们看看有没有错啊。。。为啥跑的这么慢。。。) cpp include include include using namespace std; typedef long long ll; const int N=
阅读全文
摘要:LCT模板。 Orz了一下大佬的板子 "Orz" UPD(10.19):好像理解LCT了。。。 LCT相当与把一个树剖分,分成实边和虚边,对于每一个实链用一个splay维护一下它的深度,然后当你想进行操作的时候就用splay灵活的变更它的深度与父子关系。 其中实边接的两个点父子相认,就是父节点承认有
阅读全文
摘要:算法流程:找到树的重心,删去这个点,递归子树。 题号luogu3806 cpp include include include include include include using namespace std; const int N=10005; inline int read(){ int
阅读全文
摘要:我好咸鱼。 归并排序之前写过,树状数组就是维护从后往前插入,找比现在插入的数大的数的数量。 如果值域大,可以离散化 归并排序求 cpp include include include using namespace std; int n,a[50005],b[50005]; int merge(in
阅读全文
摘要:想填一下以前的坑,结果发现是巨坑Orz lcs就是把a序列的位置映射到b序列上,求一个用树状数组lis即可 好简单啊,我真的是咸鱼Orz cpp include include include using namespace std; int n,ans; int a[100005],b[10000
阅读全文
摘要:我真的是咸鱼啊 多少年前的基础了我竟然才弄明白,哭 用树状数组维护 using namespace std; mapmp; int f[50005],n,t[50005]; void modify(int x,int Max){ for(int i=x;i
阅读全文
摘要:前置: nlogn逆序对: 前一个小时我还真的不会这个Orz 这里运用归并排序的思想。 对于一个序列,我们把它先分开,再合并成一个有序序列。 引自https://blog.csdn.net/qq_30189255/article/details/50937307 假设f(i,j)为i到j号元素中的逆
阅读全文
摘要:树链剖分LCA O(n) O(logn) cpp include include const int N=500005; int n,m,S,ecnt,head[N],tim; struct Edge{int to,nxt;}e[N=dep[top[y]]) x=fa[top[x]]; else y
阅读全文
摘要:LCIS模板 cpp include include include using namespace std; int n; long long a[3005],b[3005],f[3005]; int main() { scanf("%d",&n); for(int i=1; ib[j]&&f[j
阅读全文
摘要:"学习dalao的blog" flag++ cpp void insert(long long x){ for(int i=60;~i;i ){ if(x&(1llx)x^=base[i]; } return x; } long long query_min(long long x){ for(in
阅读全文
摘要:和Splay差不多,就是维护区间,把siz值为l 1+1与r+1+1的两个节点,将一个旋转到根,另一个旋转到根的右儿子上,则要修改的区间就是根的右孩子的左子树,直接打标记即可。 推荐: "远航之曲dalao" cpp //Writer : Hsz %WJMZBMR%tourist%hzwer inc
阅读全文