简单的完全背包。
将三种物品的价格可以理解成既是价值,又是重量。
简单动态规划
AC代码:
#include <iostream> #include <cstring> using namespace std; int dp[10005]; int a[3] = {150, 200, 350}; int b[3] = {150, 200, 350}; int max(int x, int y) { return x > y ? x : y; } int main() { int n, t; cin >> t; while(t--) { cin >> n; memset(dp, 0, sizeof(dp)); for(int i = 0; i < 3; i++) { for(int j = a[i]; j <= n; j++) dp[j] = max(dp[j], dp[j - b[i]] + a[i]); } cout << n - dp[n] << endl; } return 0; }
原文地址:http://blog.csdn.net/qq_25425023/article/details/45331215