zoukankan      html  css  js  c++  java
  • 数论杂

    1、O(cnt*log)(==O(n))阶乘质因数分解:
    求n阶乘:先筛出质数,再对n跑每个质数。

    F(j,1,cnt){ x=n*2; while(x){ a[j]+=x/prm[j];x/=prm[j]; } }

    2、
    线性逆元:
    inv[0]=inv[1]=1;
    F(i,2,n){inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;};
    3、
    线性阶乘逆元:
    注:处理mod较大情况。(1e9+7,998244353)
    对于小mod,可被整除的,直接算都会变成零。处理方法:见下。
    jc[0]=jc[1]=1;
        
        F(i,2,n){
            jc[i]=jc[i-1]*i%mod;
        }
        inv[end]=qpow(jc[end],mod-2);
        for(int i=end-1;~i;--i){
            inv[i]=inv[i+1]*(i+1)%mod;
        }
    小mod处理方法:const int end=min(n,mod-1)
    只计算mod一下的阶乘逆元。mod以上阶乘逆元都是零。
    qpow算出mod-1,从mod-2开始找。
    否则算出来都是零。






    Informatik verbindet dich und mich. 信息将你我连结。
  • 相关阅读:
    设置内存管理
    Kill Session
    设置In_Memery
    查询无效对象 及 重新编译
    Oracle 硬解析查询
    设置Oracle 12C OEM 端口
    创建Mysql 序列
    compress 表设置及索引设置
    闪回表
    ECS Samples概述
  • 原文地址:https://www.cnblogs.com/seamtn/p/11234622.html
Copyright © 2011-2022 走看看