• C++ 01背包


    📋 个人简介

    💖大家好,我是2022年3月份新人榜排名第三的 ༺Blog༒Hacker༻
    🎉支持我:点赞👍+收藏⭐️+留言📝
    💬格言:༺永做优质༒programmer༻
    📣 系列专栏:CF & UVA🍁
    📝 个人主页:༺Blog༒Hacker༻❄️
    在这里插入图片描述
    在这里插入图片描述

    【问题描述】
    N N N 件物品和一个容量为 V V V 的背包。放入第 i i i 件物品耗费的空间是 C i C_i Ci ,得到的价值是 W i W_i Wi 。求解在不超过容量的前提下,将哪些物品装入背包可使价值总和最大。

    【输入格式】
    1 1 1 行两个正整数,分别表示 N N N V V V ,中间用一个空格隔开。

    第 2 行 N N N 个正整数,表示 W i W_i Wi ,中间用一个空格隔开。

    第 3 行 N N N 个正整数,表示 C i C_i Ci ,中间用一个空格隔开。

    其中: 1 ≤ N ≤ 100 1≤N≤100 1N100 1 ≤ V ≤ 1 0 6 1≤V≤10^6 1V106 1 ≤ C i ≤ 10000 1≤C_i ≤10000 1Ci10000 1 ≤ W i ≤ 10000 1≤W_i ≤10000 1Wi10000

    【输出格式】
    一行一个正整数,表示最大的价值总和。

    【输入样例】

    4 20
    8 9 5 2
    5 6 7 3
    
    • 1
    • 2
    • 3

    【输出样例】

    16
    
    • 1

    数据规模与约定
    1 ≤ N ≤ 100 1≤N≤100 1N100
    1 ≤ V ≤ 106 1≤V≤106 1V106
    1 ≤ C i ≤ 10000 1≤C_i≤10000 1Ci10000
    1 ≤ W i ≤ 10000 1≤W_i≤10000 1Wi10000

    💯CODE

    #include
    using namespace std;
    int f[1000005],c[10005],w[10005],n,v;
    int main()
    {
    	cin>>n>>v;
    	for(int i=1;i<=n;i++)
    		cin>>w[i];
    	for(int i=1;i<=n;i++)
    		cin>>c[i];
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=v;j>=w[i];j--)
    		{
    			f[j]=max(f[j],f[j-w[i]]+c[i]);
    	    }
    	}
    	cout<<f[v];
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在这里插入图片描述

    🔮感谢各位长期以来的支持,点赞收藏是我更新的动力,下期再见,拜拜!!!

    在这里插入图片描述

  • 相关阅读:
    4点说明,为什么说母乳是宝宝高定的独家配方?母乳到底有多独家
    【JavaScript 逆向】拼多多 anti_content 参数逆向解析
    【点云处理】点云法向量估计及其加速(4)
    git的基本操作
    贪心算法一:最优装载问题
    Python学习基础笔记一
    决策树处理UNSW-NB15数据集
    前端秘法基础式终章----欢迎来到JS的世界
    电气间隙与爬电距离
    IDEA打开项目文件目录不见了
  • 原文地址:https://blog.csdn.net/HybridCOW_HORSE/article/details/126882883