Luogu 1313 计算系数
题目链接:https://www.luogu.org/problemnew/show/P1313
思路:
带入二项式定理,分离常数项与字母项,输出常数项即可。
二项式定理:
$(a+b)^n=\sum_{i=0}^n C_n^i a^{n-i} b^i$
代码:
#include <cstdio> #include <cctype> #include <cstring> #include <iostream> const int p=10007; const int MAXN=1050; typedef long long ll; using namespace std; ll a,b,k,n,m,c[MAXN][MAXN]; ll qpow(ll a,ll b){ ll ans=1; while(b){ if(b&1) ans=(ans*a)%p; a=(a*a)%p; b>>=1; } return ans%p; } int main(){ cin>>a>>b>>k>>n>>m; for(int i=0;i<=k;i++) c[i][0]=1; for(int i=1;i<=k;i++){ for(int j=1;j<=i;j++){ c[i][j]=(c[i-1][j-1]+c[i-1][j])%p; printf("%d ",c[i][j]); } printf("\n"); } cout<<(ll)(c[k][m]*qpow(a,n)*qpow(b,m))%p<<endl; return 0; }