随笔分类 - 板子
摘要:行列式 咕 LGV引理 咕 矩阵树定理 Laplace矩阵 定义Laplace矩阵 为: 。其中 是对角矩阵,对角线上元素是各个顶点的度, 是图的邻接矩阵。 定理 定理1(无向图行列式形式) 对于任意的 ,有 \[t(G)=\det L(G)\bino
阅读全文
摘要:最小割 最小割为割掉后使s、t不连通的边的容量和的最小值,数值上等于最大流 inline void add(int a,int b,int c){ e[++tot].t=b;e[tot].flow=c;e[tot].nxt=head[a];head[a]=tot; e[++tot].t=a;e[to
阅读全文
摘要:一、多项式求导 点击查看代码 inline void dao(int *g,int *f){ for(int i=0;i<n;++i) g[i]=f[i+1]*(i+1)%mod; } 二、多项式求积分 求导逆运算 $F
阅读全文
摘要:放一块方便复习,以及一些懒得写博客的新学知识点 tarjan 点击查看代码 //缩点 void tarjan(int u){ dfn[u]=low[u]=++t; s[++top]=u;vis[u]=1; for(int i=0;i<g[u].size();++i){ int v=g[u][i];
阅读全文
摘要:回滚莫队 ++L一定要独立出来 inline void Q(){ k=pow(n,0.66); for(int i=1;i<=max(n,m);++i) block[i]=(i-1)/k+1; for(int i=1;i<=q;++i) qwe[i]={read(),read(),read(),re
阅读全文
摘要:准备 #include<bits/stdc++.h> using namespace std; const double eps=1e-6; int n,m; double x,y; struct point{//vector double x,y; }; 基本运算 叉积 ab向量围成的平行四边形面
阅读全文
摘要:点分治 询问树上距离为 k 的点对是否存在。 #include<bits/stdc++.h> using namespace std; const int MAX=20010; const int inf=1.5e8; int n,m,x,y,z,q[MAX],rt,siz[MAX],maxx[MA
阅读全文
摘要:一 快速幂 inline int power(int a,int b){ int res=1; while(b){ if(b&1) res=res*a%mod; a=a*a%mod;b>>=1; }return res; } 线性筛素数 inline void merge(){ is[1]=1; f
阅读全文
摘要:Floyed for(int i=1;i<=e;i++){ a=read();b=read();w=read(); dis[a][b]=dis[b][a]=min(dis[a][b],w); }for(int i=1;i<=v;++i) dis[i][i]=0; for(int l=1;l<=v;l
阅读全文
摘要:做到了相关的题,所以来总结一下 以复杂度排序 一、计数排序(n+k) 原理 记录每个数出现次数,依次枚举数的大小 限制 1、输入的数据类型需是区间内有限的,浮点数就不行 2、数的大小在有限范围内 稳定 代码 #include<bits/stdc++.h> using namespace std; i
阅读全文
摘要:基础 建树 void build(int pos,int l,int r) { if(r<l) return; if(l==r){scanf("%lf",&tree[pos].sum);return;} int mid=l+r>>1; build(pos*2,l,mid);build(pos*2+1
阅读全文
摘要:高精加 void jia(int a[],int b[]){ c[0]=1;int d=0; while(c[0]<=a[0]||c[0]<=b[0]){ //cout<<c[c[0]]<<endl; c[c[0]]=a[c[0]]+b[c[0]]+d; d=c[c[0]]/10;c[c[0]]%=
阅读全文
摘要:一、组合数取模 1、n,m小 递推式直接求 void C_init(int n){ for(int i=0;i<=n;++i){ C[i][0]=1; for(int j=1;j<=i;++j) C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod; } } 2、n,m大,p小且为
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; #define ll long long const int N=110; const int mod=1e9+7; ll tmp[N][N],res[N][N],base[N][N]; long long n
阅读全文
摘要:单点修改,区间查询 int lowbit(int x){return x&-x;} int qu(int x){ int an1=0; while(x){an1+=c[x];x-=lowbit(x);} return an1; } void add(int x,int y){while(x<=n){
阅读全文
摘要:应用:求字符串s在文本T中出现的次数与位置 概念: 后缀 从某个位置 i 开始到整个串末尾结束的一个特殊子串。字符串 S 的从 i 开头的后缀表示为 Suffix(S, i),也就是 Suffix(S, i) = S[i…|S|-1]。 真后缀 除了 S 本身的 S 的后缀 前缀 从串首开始到某个位
阅读全文