zoukankan      html  css  js  c++  java
  • 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 }
    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
  • 相关阅读:
    大数据学习之大数据简介03
    大数据学习之Linux进阶02
    大数据学习之Linux基础01
    连接数据库出现java.sql.SQLException: Unknown system variable 'tx_isolation'
    Linux中伪分布的搭建
    【TCP/IP】入门学习笔记 三
    【TCP/IP】入门学习笔记 二
    【TCP/IP】入门学习笔记 一
    【CentOS】CentOS7 自动同步时间:服务ntp,命令ntpdate
    【Mysql】- pt-online-schema-change在线更新大表字段、加索引
  • 原文地址:https://www.cnblogs.com/Aaaamber/p/11838257.html
Copyright © 2011-2022 走看看