poj1837 Balance

题意好难懂啊

/**
 * Problem:POJ1837
 * Author:Shun Yao
 * Time:2013.4.29
 * Result:Accepted
 * Memo:DP
 */

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cassert>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<algorithm>

using namespace std;

long n, g, c[22], w[22], f[22][15005];

int main() {
	static long i, j, k;
	freopen("poj1837.in", "r", stdin);
	freopen("poj1837.out", "w", stdout);
	scanf("%ld%ld", &n, &g);
	for (i = 1; i <= n; ++i)
		scanf("%ld", c + i);
	for (i = 1; i <= g; ++i)
		scanf("%ld", w + i);
	memset(f, 0, sizeof f);
	f[0][7500] = 1;
	for (i = 1; i<= g; ++i)
		for (j = 0; j <= 15000; ++j)
			if (f[i - 1][j])
				for (k = 1; k <= n; ++k)
					f[i][j + c[k] * w[i]] += f[i - 1][j];
	printf("%ld", f[g][7500]);
	fclose(stdin);
	fclose(stdout);
	return 0;
}


作者:HSUPPR
出处:http://www.cnblogs.com/hsuppr/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文链接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/hsuppr/p/3088871.html