zoukankan      html  css  js  c++  java
  • 计算系数

    给定一个多项式(ax+by)^k,请求出多项式展开后x^ny^m项的系数。

    输入格式

    共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。

    输出格式

    输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。

    数据范围

    0n,mk1000
    n+m=k,
    0a,b1^6

    输入样例:

    1 1 3 1 2 
    

    输出样例:

    3
    // C[k][n]*a^n*b^m
    #include<bits/stdc++.h> 
    using namespace std;
    typedef long long ll; 
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    #define pi 3.14159265358979323846
    const int INF=0x3f3f3f3f;
    const int mod=10007;
    const int maxn=1e6+100;
    const int maxa=521;
    int a,b,k,n,m;
    ll f[maxn]; 
    ll qpow(ll a,ll b){
        ll ans=1;
        while(b){
            if(b&1){
                ans=(ans*a)%mod;
            }
            b>>=1;
            a=(a*a)%mod;
        }
        return ans;
    } 
    // C[k][n]*a^n*b^m
    ll cal(ll n,ll m){//c(n,m)
        if(m>n){
            return 0;
        }
        else{
            return (f[n]*(qpow(f[n-m],mod-2)%mod)*(qpow(f[m],mod-2)%mod))%mod;
        }
    }
    int main(){
        f[0]=1;
        for(int i=1;i<=1e5;i++){
            f[i]=(f[i-1]*i)%mod;
        }
        printf("%lld
    ",qpow(2,3));
        printf("%lld",cal(6,3));
        cin>>a>>b>>k>>n>>m;
        ll ans=(((cal(k,n)*qpow(a,n))%mod)*qpow(b,m)%mod)%mod;
        printf("%lld",ans);
        
    } 
     
  • 相关阅读:
    vmalloc详解
    SSD 页、块、垃圾回收
    ext2文件系统
    slub分配object
    slab分配object
    ACCESS_ONCE的作用
    CFS理论模型
    代码规范
    About Me
    SDOI R2 咕咕记
  • 原文地址:https://www.cnblogs.com/lipu123/p/13041765.html
Copyright © 2011-2022 走看看