采药(lgP1048)
emmm 01 背包模板...
设 f[i] 表示背包容积为 i 时所得的最大价值。
则状态转移方程为 f[j] = f[j - w[i]] + c[i] 。
#include<bits/stdc++.h> using namespace std; int w[1001],c[1001],t,m,f[1001]; int main() { scanf("%d%d",&t,&m); for(int i = 1;i <= m;i ++) { scanf("%d%d",&w[i],&c[i]); } for(int i = 1;i <= m;i ++) { for(int j = t;j >= w[i];j --) { f[j] = max(f[j],f[j - w[i]] + c[i]); } } printf("%d",f[t]); return 0; }
本文来自博客园,作者:樱雪喵,转载请注明原文链接:https://www.cnblogs.com/ying-xue/p/14056060.html