http://acm.hdu.edu.cn/showproblem.php?pid=2602
#include<bits/stdc++.h> #define maxn 100004 int v[maxn]; int dp[maxn]; int weigh[maxn]; int n,V,t; using namespace std; int main() { cin>>t; while(t--) { cin>>n>>V; for(int i=0; i<n; i++) cin>>weigh[i]; for(int i=0; i<n; i++) cin>>v[i]; memset(dp,0,sizeof(dp)); for(int i=0; i<n; i++) for(int j=V; j>=v[i]; j--) dp[j]=max(dp[j],dp[j-v[i]]+weigh[i]); cout<<dp[V]<<endl; } return 0; }
本文通过C++代码解决背包问题,采用动态规划方法优化求解最大价值。输入物品数量及背包容量后,程序读取每个物品的价值和重量,并计算出装入背包的最大价值。
&spm=1001.2101.3001.5002&articleId=80682263&d=1&t=3&u=75011f14255f4efcbb2d25a1e03d3ddb)

被折叠的 条评论
为什么被折叠?



