poj 1837 Balance--01背包

//   01背包
//参考http://blog.csdn.net/lyy289065406/article/details/6648094
//基本就是抄过来了  呵呵   学习学习
#include<iostream>
using namespace std;
int shu[21][15001];
int main()
{
	int a,b,i,w[21],z[21],j,k;
	cin>>a>>b;
	for(i=1;i<=a;i++)
		cin>>w[i];
	for(i=1;i<=b;i++)
		cin>>z[i];

	memset(shu,0,sizeof(shu));
	shu[0][7500]=1;
	for(i=1;i<=b;i++)
		for(j=0;j<=15000;j++)
			if(shu[i-1][j])
				for(k=1;k<=a;k++)
					shu[i][j+z[i]*w[k]]+=shu[i-1][j];
	cout<<shu[b][7500]<<endl;
	return 0;
}

你可能感兴趣的:(BI)