母函数——pku3046

计算组合数什么的用到母函数

(1+x^1+...x^N1)*(1+x^1+...x^N2)...*(1+x^1+...x^Nn)

View Code
#include<stdio.h>
#include<string.h>

int n,m,a,b;
int c1[10090],c2[10090];
int s[1009];

int main()
{
while(scanf("%d%d%d%d",&m,&n,&a,&b)!=EOF)
{
int i,j,k,temp;
memset(s,0,sizeof(s));
for(i=0;i<n;i++)
{
scanf("%d",&temp);
s[temp]++;
}

for(i=0;i<=s[1];i++)
{
c1[i]=1;
c2[i]=0;
}

for(i=2;i<=m;i++)
{
for(j=0;j<=n;j++)
{
for(k=0;k<=s[i];k++)
{
c2[j+k]+=c1[j];
c2[j+k]%=1000000;
}
}

for(j=0;j<=n;j++)
{
c1[j]=c2[j];
c2[j]=0;
}
}

int sum=0;
for(i=a;i<=b;i++)
{
sum+=c1[i];
sum%=1000000;
}
printf("%d\n",sum);
}
}



你可能感兴趣的:(pku)