zoukankan      html  css  js  c++  java
  • 数学模板

    关于一些数学模板

    线性筛

    for(int i=2;i<=n;++i){
    	if(!f[i])pri[++tot]=i;
    	for(int j=1;j<=tot&&pri[j]*i<=n;++j){
    		f[pri[j]*i]=1;
    		if(i%pri[j]==0)break;
    	}
    }
    

    n!分解质因数

    void fj(int x){
    	for(int i=1;i<=tot;i++){
            int tp=x;
            while(tp)sum[i]+=tp/pri[i],tp/=pri[i];
        }
    }
    

    (varphi(x)=x(1-1/p_1)(1-1/p_2).....(1-1/ p_n))

    关于exgcd

    求ax+by=c的一个特殊解

    void exgcd(ll a,ll b,ll &d,ll &x,ll &y){
    	if(b==0){d=a;x=1;y=0;return;}
    	exgcd(b,a%b,d,x,y);
    	ll tmp=x;
    	x=y;y=tmp-a/b*y;
    }
    

    推导过程:

    //ax+by=gcd(a,b)
    //bx1+(a%b)y1=gcd(b,a%b)
    //ax+by=bx1+(a%b)y1
    //ax+by=bx1+(a-b*a/b)y1
    //ax+by=bx1-b*a/b*y1+ay1
    //ax+by=b(x1-a/b*y1)+ay1
    //x=y1 y=x1-a/b*y1
    

    费马小定理 a^(p-1)≡1(mod p)p为质数

    排列数公式:(P^m_n=frac{n!}{(n-m)!})

    组合数公式:(C^m_n=frac{n!}{((n-m)! imes m!)})

    (C_n^m=C_{n-1}^{m-1}+C_{n-1}^{m})

    n个数分成m段(可为空)方案数为(C_{n+m-1}^{m-1})

  • 相关阅读:
    Boost.Asio c++ 网络编程翻译(10)
    建站手册:网站品质
    建站手册-template
    CDN:分类
    CDN:BootCDN 项目列表-摘录-20180405
    CDN:BootCDN
    CDN:目录
    CDN-template
    JavaScript-Tool:md5.js
    Regexp-Utils:基本
  • 原文地址:https://www.cnblogs.com/ADMAN/p/10610749.html
Copyright © 2011-2022 走看看