随笔分类 - 模板
模板 - 杂项
摘要:快读+快写 整合 v1 namespace IO{ template<typename TYPE> void read(TYPE &x) { x=0; bool neg=false; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')neg=tr
模板 - 数学
摘要:快速幂 递归 long long quick_pow(long long x,long long y,long long p) { long long tmp=quick_pow(x,y>>1,p); tmp=tmp*tmp%p; if(y&1) return tmp*x%p; else retur
模板 - 动态规划
摘要:背包 01 背包 for(int i=1;i<=n;i++) for(int j=m;j>=v[i];j--) { f[j]=max(f[j],f[j-v[i]]+w[i]); ans=max(ans,f[j]); } 完全背包 for(int i=1;i<=n;i++) for(int j=v[i
模板 - 字符串
摘要:KMP namespace KMP{ int nxt[LEN]; void Init() { nxt[1]=0; for(int i=2,j=0;i<=plen;i++) { while(j && p[j+1]!=p[i]) j=nxt[j]; if(p[j+1]==p[i]) j++; nxt[i
模板 - 数据结构
摘要:并查集 定义 & 初始化 int fa[N]; void uInit() { for(int i=1;i<=n;i++) fa[i]=i; return; } 查询 int uask(int x) { if(fa[x]==x) return fa[x]; else return fa[x]=uask
模板 - 图论
摘要:邻接表(链式前向星)存图 定义 struct Allan{ int val; int to,nxt; }edge[M]; int idx,head[N]; 加边 inline void add(int x,int y,int z) { edge[++idx]={z,y,head[x]}; head[