1926 -- 【模拟试题】多项式展开系数
Description
Input
第一行,两个整数n和t,中间用空格分隔。分别表示多项式幂和项数。
第二行,t个整数n1, n2, …, nt,中间用空格分隔。分别表示x1, x2, …, xn的幂。(n1+n2+…+nt=n,1≤n, t≤12)
第二行,t个整数n1, n2, …, nt,中间用空格分隔。分别表示x1, x2, …, xn的幂。(n1+n2+…+nt=n,1≤n, t≤12)
Output
仅一行,一个整数(保证在长整型范围内)。表示多项式(x1+x2+…+xt)n中的项 的系数。
Sample Input
3 3 2 1 0
Sample Output
3
code:
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int fac[20]; 5 void pre(){ 6 fac[0]=1; 7 for(int i=1;i<=12;i++){ 8 fac[i]=fac[i-1]*i; 9 } 10 } 11 int C(int a,int b){ 12 if(a<b)return 0; 13 return fac[a]/fac[b]/fac[a-b]; 14 } 15 int a[20]; 16 int main(){ 17 int n,t; 18 cin>>n>>t; 19 pre(); 20 for(int i=1;i<=t;i++){ 21 cin>>a[i]; 22 } 23 int now=n,ans=1; 24 for(int i=1;i<=t;i++){ 25 ans*=C(now,a[i]); 26 now-=a[i]; 27 } 28 cout<<ans; 29 return 0; 30 }
over