首页 > 代码库 > 【母函数】hdu2082 找单词

【母函数】hdu2082 找单词

普通型母函数详解见这里: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\n",ans);
	  }
	return 0;
}

【母函数】hdu2082 找单词