zoukankan      html  css  js  c++  java
  • 886. 求组合数 II(模板)

      数据范围较大, a,b都是1e5

      直接根据公式预处理

     

        1/i就是求i的逆元(逆元求法:mod为质数,逆元就是 i^(mod-2)%mod )

       O(N*logN)

    import java.util.Scanner;
    
    public class Main{
            static final int N=100005;
            static final int mod=(int)1e9+7;
            static long fact[]=new long[N];
            static long infact[]=new long[N];
            static long quick_pow(long a,long b){
                    long res=1;
                    while(b>0){
                            if((b&1)==1) res=res*a%mod;
                            a=a*a%mod;
                            b>>=1;
                    }
                    return res%mod;
            }
            public static void main(String[] args) {
                    Scanner scan=new Scanner(System.in);
                    fact[0]=infact[0]=1;
                    for(int i=1;i<N;i++){
                            fact[i]=fact[i-1]*i%mod;
                            infact[i]=infact[i-1]*quick_pow(i,mod-2)%mod;
                    }
                   int t=scan.nextInt();
                   while(t-->0){
                               int a=scan.nextInt();
                               int b=scan.nextInt();
                               System.out.println(fact[a]*infact[a-b]%mod*infact[b]%mod);
                   }
            }
    }

       

  • 相关阅读:
    deque-pop_back
    deque-max_size
    deque-insert
    deque-insert
    deque-front
    deque-front
    deque-erase
    deque-erase
    deque-end
    Angular2入门教程-1
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12264907.html
Copyright © 2011-2022 走看看