官方题解
2025-07-14 08:15:16
发布于:浙江
20阅读
0回复
0点赞
T3 午枫爱搬家2
题目大意
有 件物品,每件物品有体积和价值两种属性,有一辆容量为 的卡车,求搬运的物品在没超过卡车容量的前提下最大能存放的价值。
解题思路
本题考虑用 背包求解。
设 表示消耗 的容积时,能得到的最大价值。
那么状态转移为 。
参考代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
signed main(){
int n,m;cin>>n>>m;
vector<int>w(n+1),v(n+1);
for(int i=1;i<=n;i++) cin>>w[i]>>v[i];
vector<int>dp(m+1);
for(int i=1;i<=n;i++){
for(int j=m;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
cout<<dp[m]<<endl;
}
这里空空如也
有帮助,赞一个