#include <iostream>
#include <cstring>
using namespace std;
int a[1001],b[1001],c[1001],f[1001][1001];
int main()
{
memset(f,0,sizeof(f));
int i,j,k,l,n,m;
cin>>m>>k;
cin>>n;
for(i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
for(i=1;i<=n;i++) {
for(j=m;j>=0;j--) {
for(l=k;l>=0;l--) {
if(j>=a[i]&&l>=b[i]) f[j][l]=max(f[j][l],f[j-a[i]][l-b[i]]+c[i]);
}
}
}
cout<<f[m][k]<<endl;
return 0;
}
Vijos1334 NASA的食物计划
最新推荐文章于 2019-07-26 13:37:00 发布
本文介绍了一个使用C++实现的动态规划算法来解决经典的二维背包问题。通过三维循环结构,程序有效地计算了在给定容量限制下能够获得的最大价值。此算法广泛应用于资源分配和优化问题中。

292

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



