混合背包 ybt 1270
#include <bits/stdc++.h> using namespace std; const int INF = 0x7fffff; const int N = 201; int dp[N],n,m,w,v,s; int main() { ios::sync_with_stdio(false); cin >> m >> n; for (int i = 1; i <= n; i++) { cin >> w >> v >> s; if (s == 0) s = INF; for (int j = m; j >= 0; j--) { for (int k = 1; k <= s && k * w <= j; k++) { dp[j] = max(dp[j], dp[j - k * w] + k * v); } } } cout << dp[m] << endl; return 0; }
本文在博客园发布,作者:limited_Infinite,转载请注明原文链接:https://www.cnblogs.com/limitedInfinite/p/14701813.html