Amber
Posted aaaamber
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Amber相关的知识,希望对你有一定的参考价值。
训练做的题里有板子单独拉出来。
欧拉筛
1 int vis[N+5],prim[N+5]; 2 int cnt; 3 void Eular() 4 { 5 vis[0]=vis[1]=1; 6 for(int i=0;i<N;i++) 7 if(!vis[i]) 8 { 9 prim[cnt++]=i; 10 for(ll j=(ll)i*i;j<N;j+=i) vis[j]=1; 11 } 12 }
辗转相除法求逆元
1 ll ans,re; 2 void e_gcd(ll a,ll b) 3 { 4 if(b==0) 5 { 6 ans=1,re=0; 7 return; 8 } 9 e_gcd(b,a%b); 10 ll temp=ans; 11 ans=re; ///*** 12 re=temp-a/b*re; 13 }
SPFA找环【bfs
1 int vis[N]; 2 bool spfa_bfs() 3 { 4 ans[s]=v; 5 vis[s]=1; 6 queue<int> qu; 7 qu.push(s); 8 while(!qu.empty()) 9 { 10 int node=qu.front(); 11 qu.pop(); 12 vis[node]=0; 13 for(int i=1;i<=n;i++) 14 { 15 if(ans[i]<(ans[node]-ma2[node][i])*ma1[node][i]) 16 { 17 ans[i]=(ans[node]-ma2[node][i])*ma1[node][i]; 18 if(ans[s]>v) return true; 19 if(!vis[i]) qu.push(i),vis[i]=1; 20 } 21 } 22 } 23 return false; 24 }
二维树状数组
1 int ma[N][N]; 2 int n,m; 3 inline int lowbit(int x){return x&-x;} 4 void updata(int x,int y) 5 { 6 for(int i=x;i<=n;i+=lowbit(i)) 7 for(int j=y;j<=m;j+=lowbit(j)) ma[i][j]++; 8 } 9 int query(int x,int y) 10 { 11 int res=0; 12 for(int i=x;i>0;i-=lowbit(i)) 13 for(int j=y;j>0;j-=lowbit(j)) res+=ma[i][j]; 14 return res; 15 }
矩阵相乘&矩阵快速幂
1 int n; 2 struct p{ 3 double matris[30][30]; 4 }Rl,tep,res,wat,ans; 5 void init() 6 { 7 memset(Rl.matris,0,sizeof(Rl.matris)); 8 memset(res.matris,0,sizeof(res.matris)); 9 memset(tep.matris,0,sizeof(tep.matris)); 10 memset(wat.matris,0,sizeof(wat.matris)); 11 for(int i=1;i<=n;i++) tep.matris[i][i]=1; 12 } 13 p Matris(p a,p b) 14 { 15 p tem; 16 memset(tem.matris,0,sizeof(tem.matris)); 17 for(int i=1;i<=n;i++) 18 for(int j=1;j<=n;j++) 19 for(int k=1;k<=n;k++) 20 tem.matris[i][j]+=a.matris[i][k]*b.matris[k][j]; 21 return tem; 22 } 23 p quick_mi(ll n) 24 { 25 p m=Rl,b=tep; 26 while(n) 27 { 28 if(n&1) b=Matris(b,m); 29 m=Matris(m,m); 30 n/=2; 31 } 32 return b; 33 }
以上是关于Amber的主要内容,如果未能解决你的问题,请参考以下文章
传说F(x)Amber是“神童让她怀孕的”,他愤怒地写了一封