
dp直接做:
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include <algorithm>
#include<string.h>
#include<math.h>
#define llu unsigned long long
using namespace std;
int value[10010];
int main()
{
cout << fixed << setprecision(0);
//cout << setw(8) << setiosflags(ios::left);
int n,W;
cin >> n >> W ;
for(int i=1;i<=n;i++)
{
int w,p;
cin >> w >> p ;
for(int j=W;j>=w;j--)
{
value[j]=max(value[j],value[j-w]+p);
}
}
cout << value[W];
return 0;
}
该博客探讨了一种使用动态规划解决背包问题的算法。通过读取物品的重量和价值,程序计算出在不超过给定重量限制的情况下,如何选择物品以最大化总价值。代码中展示了如何迭代更新价值数组以找到最优解。
2701

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



