• 逆元总结


    逆元是一个很有用的东西,还记得上半年不会逆元丢了许多许多分,最近算是恶补了一下,许多题都能AC了.

    它的作用是处理膜意义下的除法运算,因为膜的时候对除数取余是错误的,这个时候就要用到逆元.

    一.log2(mod)求mod为质数时任何数 的逆元

    long long mul(long long x,long long y)//快速乘
    {
        return ((x*y-(long long)(((long double)x*y+0.5)/mod)*mod)%mod+mod)%mod;
    }
        
    long long quick(long long  a,long long  b)
    {
    
        long long ans=1;
        for(;b;b>>=1,a=a*a%mod)//如果mod*mod溢出long long了就用快速乘
            if(b&1)ans=ans*a%mod;
        return ans%mod;
    }
    long long niyuan(a)
    {
        return quick(a,mod-2);
    }

    二.递推1到n的逆元

        iniyuan[1]=1;
        for(i=2;i<=n;i++)
            iniyuan[i]=(mod-mod/i)*iniyuan[mod%i]%mod;

    三.递推!1到!n的逆元(主要用于O(1)处理组合数)

        
        iniyuan[1]=niyuan[1]=1;;
        for(i=2;i<=n;i++)
            iniyuan[i]=(mod-mod/i)*iniyuan[mod%i]%mod;
        for( i=2;i<=n;i++)
            niyuan[i]=niyuan[i-1]*iniyuan[i]%mod;
  • 相关阅读:
    605. Can Place Flowers
    1184. Distance Between Bus Stops
    1711. Count Good Meals
    1710. Maximum Units on a Truck
    566. Reshape the Matrix
    980. Unique Paths III
    212. Word Search II
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/qywyt/p/9800020.html
Copyright © 2020-2023  润新知