题意:给你(x1+x2+....+xk)^n的式子,然后给定所有x的次方,问这个它的系数是多少。
思路:运用组合数c(n,m),每次从剩下的次方里面找到选择相应数值的情况,相乘即可。
AC代码如下:
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,c[20][20],num[20],sum[20],ans;
int main()
{
int i,j,k;
for(i=0;i<=13;i++)
c[0][i]=1;
for(i=1;i<=13;i++)
{
c[i][0]=c[i][i]=1;
for(j=1;j<i;j++)
c[i][j]=c[i-1][j-1]+c[i-1][j];
}
while(~scanf("%d%d",&n,&m))
{
k=n;
ans=1;
for(i=1;i<=m;i++)
{
scanf("%d",&num[i]);
ans*=c[k][num[i]];
k-=num[i];
}
printf("%d\n",ans);
}
}