各类奇葩模板
各类模子,希望各位dalao赞助( ̄▽ ̄)~*(`・ω・´)
以下为各类模板(持续更新)
快速幂
int qpow(long long x,long long y) { if(y==1)return x%c; long long t=qpow(x,y/2); if(y%2>0)return t*t*x%c; else return t*t%c; }
并查集
int root(int x)//找根 { if(p[x]<0)return x;//如果找到根了 return p[x]=root(p[x]);//非常精巧边找根边将自己设为根的儿子 } void Merge(int x,int y)//将x的和y合并 { int u=root(x);//追溯到x的根 int v=root(y);//追溯到y的根 if(u!=v)//如果两人的根不相等 { if(u<v) { p[u]=p[u]+p[v]; p[v]=u; } else { p[v]=p[v]+p[u]; p[u]=v; } } } bool findg(int x,int y)//如果x和y属于同一个图 { int u=root(x);//追溯到x的根 int v=root(y);//追溯到y的根 if(u==v)return true;//如果x和y属于同一个图 else return false;//否则返回不为同一个根 }
线性筛素数
void prime(int n) { for(int i=2;i<=n;i++)ip[i]=1; for(int i=2;i<=n;i++) { if(ip[i]) { for(int j=2*i;j<=n;j=j+i) { ip[j] = false; } } } }