zoukankan      html  css  js  c++  java
  • BZOJ 2982: combination Lucas模板题

    Code:

    #include<bits/stdc++.h>
    #define ll long long 
    #define maxn 1000003 
    using namespace std;
    const ll mod = 10007; 
    void setIO(string s)
    {
    	string in=s+".in"; 
    	freopen(in.c_str(),"r",stdin); 
    }
    struct Comb
    {
    	ll fac[maxn]; 
    	ll qpow(ll base,ll k)
    	{
    		ll tmp=1;
    		while(k)
    		{
    			if(k&1)tmp=tmp*base%mod; 
    			k>>=1; 
    			base=base*base%mod; 
    		}
    		return tmp; 
    	}
    	void init()
    	{
    		int i;
    		fac[1]=fac[0]=1; 
    		for(i=2;i<maxn;++i) fac[i]=(fac[i-1]*i)%mod; 
    	}
        ll getinv(ll a)
        {
        	return qpow(a,mod-2); 
        }
        ll C(ll n,ll m)
        {
        	if(m==0) return 1; 
        	if(n<m) return 0; 
        	return (fac[n]*getinv(fac[n-m]*fac[m]))%mod;   
        }
        ll lucas(ll n,ll m)
        {
        	if(m==0) return 1;
        	return (lucas(n/mod,m/mod)*C(n%mod,m%mod))%mod; 
        }
    }t;  
    int main()
    {
    	// setIO("input"); 
    	int T,n,m; 
    	scanf("%d",&T); 
    	t.init(); 
    	while(T--)
    	{
    		scanf("%d%d",&n,&m);
    		if(n<m) swap(n,m); 
    		printf("%lld
    ",t.lucas(n,m)); 
    	}
    	return 0; 
    }
    

      

  • 相关阅读:
    Tomcat启动流程简析
    Tomcat的启停脚本源码解析
    Servlet规范
    CCNA
    CCNA-Part 6
    MYSQL 使用基础
    CCNA-Part5
    CCNA-Part4 -网络层
    MySQL 字符串索引优化方案
    CCNA-Part3
  • 原文地址:https://www.cnblogs.com/guangheli/p/11089356.html
Copyright © 2011-2022 走看看