Cappuccino ~ the end of journey

我们可以把它当做完全背包来看,即该背包有两种物品,一种体积为1价值为a,一种体积为c价值为b,在总价值确定的情况下求体积最多的解法。

#include <bits/stdc++.h>
using namespace std;

int f[100009];

int main() {
    int a, b, c, d;
    scanf("%d%d%d%d", &a, &b, &c, &d);
    int ans = 0;
    for(int i = a; i <= d; i++)
        f[i] = max(f[i], f[i - a] + 1);
    for(int i = b; i <= d; i++)
        f[i] = max(f[i], f[i - b] + c);
    cout << f[d];
    return 0;
}