P1837

P1837

背包..
wa了一次,因为漏了物品的个数..所以数组申小了..
#include  < iostream >
using   namespace  std;

int  f[ 21 ][ 32 * 25 * 20 + 1 ];
int  mid = 16 * 25 * 20 ;
int  n,m;
int  t[ 21 ];
int  g[ 21 ];
int  main()
{
 cin
>>n>>m;
 
for (int i=1;i<=n;i++)
 
{
  cin
>>t[i];
 }

 
for (int i=1;i<=m;i++)
 
{
  cin
>>g[i];
 }

 
 memset(f,
0,sizeof(f));
 
for (int i=1;i<=n;i++)
 
{
  f[
1][t[i]*g[1]+mid]++;
 }

 
 
for (int i=2;i<=m;i++)
 
{
  
for (int j=1;j<=n;j++)
  
{
   
for (int k=0;k<=32*25*20;k++)
   
{
    
if (f[i-1][k]==0continue;
    f[i][k
+g[i]*t[j]]+=f[i-1][k];
   }

  
  }

 }
 
 cout
<<f[m][mid]<<endl;
 system(
"pause");
 
return 0;
}



你可能感兴趣的:(P1837)