代码模板

manachar

void init()
{
	cnt=1;
	ss[0]='!';
	ss[cnt]='#';
	len=strlen(s);
	for(int i=0;i<len;i++)
	{
		ss[++cnt]=s[i];
		ss[++cnt]='#';
	}
}
int manachar()
{
	d[1]=1;
	for(int i=2,l,r=1;i<=cnt;i++)
	{
		if(i<r) d[i]=min(d[r-i+l],r-i+1);
		while(ss[i+d[i]]==ss[i-d[i]]) d[i]++;
		if(i+d[i]-1<=r) l=i-d[i]+1,r=i+d[i]-1;
		ans=max(ans,d[i]-1); 
	}
	return ans;
}

快速幂

int qpwd(int a,int n)
{
	int ret=1;
	while(n)
	{
		if(n&1) ret=ret*a;
		a=a*a;
		n>>=1;
	}
	return ret;
}

埃氏筛

void ashai()
{
   for(int i=2;i<=n;i++)
   {
   	if(!vis[i])
   	{
   		prim[++cnt1]=i;
   	}
   	for(int j=1;i*prim[j]<=n;j++)
   	{
   		vis[i*prim[j]]=1;
   		if(i%prim[j]==0) break;
   	}	
   	
   }
}
posted on 2024-03-27 15:59  如果有缘我们会再见  阅读(17)  评论(0)    收藏  举报