動態規劃-完全背包(同一個物體可以取很多次)
阿新 • • 發佈:2019-01-26
超過 i++ code int tdi names clu 順序 const
#include<stdio.h> #include<algorithm> using namespace std; //完全背包 const int maxm=2001,maxn=101; int n,m,v,i; int c[maxn],w[maxn]; int f[maxm]; int main() { scanf("%d%d",&m,&n); //背包容量m和物品數量n for(i=1;i<=n;i++) scanf("%d%d",&w[i],&c[i]); for(i=1;i<=n;i++) for(v=w[i]; v<=m; v++) //設 f[v]表示重量不超過v公斤的最大價值 //這裏是v++ 順序 區別於01背包 f[v]=max(f[v-w[i]]+c[i], f[v]); printf("%d\n", f[m]); // f[m]為最優解 return 0; }
動態規劃-完全背包(同一個物體可以取很多次)