普通型母函数详解见这里:http://www.wutianqi.com/?p=596
裸题,存个板子。
#include<cstdio> #include<cstring> using namespace std; int T,a[53],b[53]; int main() { //freopen("hdu2082.in","r",stdin); int x; scanf("%d",&T); for(;T;--T) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); a[0]=1; for(int i=1;i<=26;++i) { scanf("%d",&x); for(int j=0;j<=50;++j)//这里j就是前面i-1个表达式累乘得到的表达式里第j个变量 for(int k=0;k<=x && k*i+j<=50;++k)//k表示的是新的表达式的第j个指数 b[k*i+j]+=a[j]; memcpy(a,b,sizeof(a)); memset(b,0,sizeof(b)); } int ans=0; for(int i=1;i<=50;++i) ans+=a[i]; printf("%d ",ans); } return 0; }