题意
给出几件物品,选择一些物品使得满足条件且代价最小。
思路
数据较小,暴力即可。
代码
#include<cstdio>
#include<algorithm>
struct node {
int w, m, v;
}c[22];
int n, a, b, ans = 2147483647;
void dfs(int p, int v, int w, int m) {
if (w >= a && m >= b) {
ans = std::min(ans, v);
return;
}
if (v >= ans || p > n) return;
dfs(p + 1, v + c[p].v, w + c[p].w, m + c[p].m);
dfs(p + 1, v, w, m);
}
int main() {
scanf("%d %d %d", &a, &b, &n);
for (int i = 1; i <= n; i++)
scanf("%d %d %d", &c[i].w, &c[i].m, &c[i].v);
dfs(1, 0, 0, 0);
printf("%d", ans);
}