动态规划
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int dp[30][15010];
int main()
{
int c,g,pos[30],w[30],ans,i,j,k,tmp;
// freopen("test.txt", "r", stdin);
while(scanf("%d%d",&c,&g)!=EOF)
{
ans=0;
memset(dp,0,sizeof(dp));
dp[0][7500]=1;
for(i=0;i<c;i++)
{
scanf("%d",&pos[i]);
}
for(i=0;i<g;i++)
scanf("%d",&w[i]);
for(i=0;i<g;i++)
for(j=0;j<c;j++)
for(k=0,tmp=pos[j]*w[i];k<=15000;k++)
if(k-tmp<=15000&&dp[i][k-tmp])
dp[i+1][k]+=dp[i][k-tmp];
printf("%d\n",dp[g][7500]);
}
return 0;
}