二维费用01背包问题

解法就是先枚举物品再枚举条件这里两个条件所以要枚举两个for

代码

#include <bits/stdc++.h>
using namespace std;
int dp[500][500],v[100],m[100],w[100];
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int vv,mm;
	cin>>vv>>mm;
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	cin>>v[i]>>m[i]>>w[i];
	for(int i=0;i<n;i++)
	for(int j=vv;j>=v[i];j--)
	for(int k=mm;k>=m[i];k--)
	dp[j][k]=max(dp[j][k],dp[j-v[i]][k-m[i]]+w[i]);
	cout<<dp[vv][mm];
}

相关文章:

  • 2021-07-16
  • 2021-10-08
  • 2022-12-23
  • 2021-11-05
  • 2021-11-03
  • 2021-07-28
  • 2022-02-08
猜你喜欢
  • 2021-07-22
  • 2022-01-30
  • 2022-02-08
  • 2022-12-23
  • 2022-12-23
  • 2021-06-12
相关资源
相似解决方案