2024年3月1日

摘要: 普通的01背包问题 #include <iostream> using namespace std; const int N = 10010; int v[N], w[N]; int f[N]; int main(){ int n, m; cin>>n>>m; for(int i = 1; i <= 阅读全文
posted @ 2024-03-01 21:03 屏 阅读(4) 评论(0) 推荐(0) 编辑
 
摘要: 本题是一个完全背包问题,需要对三重循环进行优化。 容易想到用(i, j)表示从前i个硬币中选取总价值为j的方案中,使用硬币数目的集合。f(i, j)表示其最小值。 则有 f(i, j) = min(f(i - 1, j - k*w[i]) + k), 其中 k = {0, 1, ..., j / w 阅读全文
posted @ 2024-03-01 19:54 屏 阅读(6) 评论(0) 推荐(0) 编辑