沐里纷纷


私信TA

用户名:Epoch

访问量:68591

签 名:

我不会算法

等  级
排  名 38
经  验 13504
参赛次数 1
文章发表 172
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

不会算法

解题思路:

01背包,dp,滚动数组


注意事项:

dp数组里存放的是当前背包中的物品的总体积而不是价值


参考代码:

#include <stdio.h>
#include <iostream>
#define N 20000

using namespace std;

int v[N+2];
int dp[N+2];

int main()
{

    int n,V;

    cin >> V >> n;

    for(int i = 1;i <= n;i++)
        cin >> v[i];

    for(int i = 1;i <= n;i++)
        for(int j = V;j >= v[i];j--)
            dp[j] = (dp[j-v[i]] + v[i]) > dp[j] ? (dp[j-v[i]] + v[i]) : dp[j];

    cout << V - dp[V] << endl;

    return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »