杭电hdu 1248 寒冰王座 完全背包

http://acm.hdu.edu.cn/showproblem.php?pid=1248

注意与0-1背包的区别

#include <stdio.h>
#include <string.h>

int max(int a, int b)
{
	return a > b ? a : b;
}

int main()
{
	int t;
	int n;
	int arr[3] = {150, 200, 350};
	int i, j;
	int dp[10002];
	scanf("%d", &t);
	while(t --){
		scanf("%d", &n);
		memset(dp, 0, sizeof(dp));
		for(i = 0; i < 3; i ++){
			for(j = arr[i]; j <= n; j ++){
				dp[j] = max(dp[j], dp[j - arr[i]] + arr[i]);
			}
		}
		printf("%d\n", n - dp[n]);
	}
	return 0;
}


你可能感兴趣的:(杭电hdu 1248 寒冰王座 完全背包)