各种奇葩模板

各类奇葩模板

各类模子,希望各位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;
			 }
		 }
	 }
}

猜你喜欢

转载自www.cnblogs.com/dropworld/p/2019-02-13-01.html