#include<cstdio>
#include<cstring>
int dp[25][16000];
int lo[30],w[30];
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
for(int i=0;i<n;i++)
scanf("%d",&lo[i]);
for(int i=1;i<=m;i++)
scanf("%d",&w[i]);
memset(dp,0,sizeof(dp));
dp[0][7500]=1;
for(int i=1;i<=m;i++)
{
for(int j=0;j<=15000;j++)
{
for(int k=0;k<n;k++)
{
if(j+lo[k]*w[i]>=0)
dp[i][j]+=dp[i-1][j+lo[k]*w[i]];
}
}
}
printf("%d\n",dp[m][7500]);
}
}
poj 1837 dp推方案数
最新推荐文章于 2023-03-12 13:10:57 发布