ps:昨天刚做了个母函数的,觉得不太熟,今天又是母函数。。很好。。
代码:
#include "stdio.h" #include "string.h" int c1[41]; int c2[41]; int main(){ int i,n,m,a,j,k,T,b,t; int num[41]; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&k); for(i=1;i<=k;i++){ scanf("%d%d",&a,&b); num[a]=b; } memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); c1[0]=1; for(i=1;i<=k;i++){ for(j=0;j<=n;j++){ for(t=0;t<=num[i] && t*i+j<=n;t++){ c2[t*i+j]+=c1[j]; } } for(j=0;j<=n;j++){ c1[j]=c2[j]; c2[j]=0; } } printf("%d\n",c1[n]); } return 0; }
原文:http://www.cnblogs.com/sureli/p/5287497.html