沐里纷纷


私信TA

用户名:Epoch

访问量:62790

签 名:

我不会算法

等  级
排  名 37
经  验 12815
参赛次数 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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区