码迷,mamicode.com
首页 > 其他好文 > 详细

计算系数

时间:2020-06-04 10:21:59      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:style   bit   bsp   之间   数据   span   false   mamicode   mod   

给定一个多项式(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\n",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);
    
} 

 

 

计算系数

标签:style   bit   bsp   之间   数据   span   false   mamicode   mod   

原文地址:https://www.cnblogs.com/lipu123/p/13041765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!