码迷,mamicode.com
首页 > 其他好文 > 详细

Amber

时间:2019-11-11 21:51:08      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:除法   als   memset   code   temp   eve   sed   open   opened   

训练做的题里有板子单独拉出来。

 

欧拉筛

技术图片
 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 }
View Code

 

辗转相除法求逆元

技术图片
 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 }
View Code

 

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 }
View Code

 

二维树状数组

技术图片
 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 }
View Code

 

矩阵相乘&矩阵快速幂

技术图片
 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 }
View Code

 

Amber

标签:除法   als   memset   code   temp   eve   sed   open   opened   

原文地址:https://www.cnblogs.com/Aaaamber/p/11838257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!