01背包
题目:有 N 件物品和一个容量为 V 的背包。第 i 件物品的体积(费用)是 c[i],价值是 w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
代码如下
(一维数组)
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define M 100010
int c[M],w[M],dp[M];
int main()
{
int N,V;
scanf("%d %d",&N,&V);
memset(dp,0,sizeof(dp));
for(int i=1;i<=N;i++)
{
scanf("%d %d",&c[i],&w[i]);
}
for(int