首页 > 其他分享 >【洛谷】P1049 装箱问题

【洛谷】P1049 装箱问题

时间:2024-03-30 10:48:01浏览次数:23  
标签:01 洛谷 int 背包 体积 P1049 装箱

P1049 装箱问题

确认所需算法

题目链接:P1049 装箱问题

通过看标签得知这题是一道背包问题,如果你还不知道什么是背包问题,那么请看我这篇文章

既然我们知道了这道题是一道背包问题,那么下一步我们要确认他是01背包还是完全背包。

首先我们回顾01背包和完全背包的区别:
01背包和完全背包的区别

通过题意可知,每种物品有且只有一个,所以这题是01背包。

思路

区别

这题是相对裸的01背包,只有以下两点不同:

  1. 物品价值=物品体积
  2. 输出的是剩余体积,不是被占用的体积

状态转移方程

每种物品只有装/不装两种:

  1. 如果装,那么价值就是f[j - w[i]] + w[i],注意这里我使用w[i]代表第i个物品的价值/体积。
  2. 如果不装,那么价值就是f[j]

代码

#include<cstdio>
#include<stack>
#include<iostream>
using namespace std;
int w[100],n,v,f[30000]; // w[i]代表价值/体积
int main(){
    cin >> v >> n;
    for (int i = 1;i <= n;++i) cin >> w[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]]+w[i]); // 状态转移方程
        }
    }
    cout << v - f[v]; // 注意输出的是剩余空间
    return 0;
}

标签:01,洛谷,int,背包,体积,P1049,装箱
From: https://www.cnblogs.com/doingfx/p/18105176/P1049

相关文章

  • 【洛谷】 P1006 [NOIP2008提高组]传纸条
    题目描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,......
  • 洛谷1803
    P1803凌乱的yyy/线段覆盖-洛谷|计算机科学教育新生态(luogu.com.cn)所需知识:贪心本来还想用dfsbfs搜索来一点一点做的,看到了大佬的思路之后,直接orz了整体思路:因为要想尽可能的多参加比赛,所以越早结束比赛对后面留出来的时间就更多,可以参加更多场比赛,所以直接将每场......
  • 【洛谷 P8738】[蓝桥杯 2020 国 C] 天干地支 题解(字符串+数学+模运算)
    [蓝桥杯2020国C]天干地支题目描述古代中国使用天干地支来记录当前的年份。天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ)。地支一共有十二个,分别为:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ......
  • 【洛谷 P8654】[蓝桥杯 2017 国 C] 合根植物 题解(并查集)
    [蓝桥杯2017国C]合根植物题目描述w星球的一个种植园,被分成m×nm\timesnm×n个小格子(东西方向......
  • 洛谷题单指南-图的基本应用-P1807 最长路
    原题链接:https://www.luogu.com.cn/problem/P1807题意解读:由于对于每一条边u->v,都有u<v,因此节点1的入度一定是0,且是有向无环图,直观上可以通过拓扑排序法搜索每一个节点,计算1到每一个节点的最长距离。但问题在于,入度为0的节点可能不止一个,这样在计算到某个点的最长距离时,会受到......
  • 洛谷题单指南-图的基本应用-P4017 最大食物链计数
    原题链接:https://www.luogu.com.cn/problem/P4017题意解读:食物链的顶端不会被其他生物吃,在图结构中设定为入度是0,食物链的底端不会吃其他生物,在图结构式设定为出度是0,此题就是要计算所有入度是0的点到所有出度是0的点一共有多条路径。解题思路:首先,来模拟一样样例,样例数据形成的......
  • 每日一题 第三十五期 洛谷 过河卒
    [NOIP2002普及组]过河卒题目描述棋盘上AAA点有一个过河卒,需要走到目标BB......
  • Kruskal最小生成树【详细解释+动图图解】&【sort中的cmp函数】& 【例题:洛谷P3366 【模
    文章目录Kruskal算法简介Kruskal算法前置知识sort中的cmp函数算法思考样例详细示范与解释kruskal模版code↓例题:洛谷P3366【模板】最小生成树code↓完结撒花QWQKruskal算法简介Kr......
  • 洛谷P1443 马的遍历(bfs模版题)
    洛谷P1443马的遍历https://www.luogu.com.cn/problem/P1443一道经典的bfs入门题这里贴上代码//#defineLOCAL1#define_CRT_SECURE_NO_WARNINGS1#include<bits/stdc++.h>//#defineintlonglong#defineendl"\n";usingnamespacestd;constintmaxn=500;intG......
  • 洛谷题单指南-图的基本应用-P3916 图的遍历
    原题链接:https://www.luogu.com.cn/problem/P3916题意解读:寻找每个点所能到达的最大的点。解题思路:直观上,可以依次从每个点开始DFS搜索,记录经过的最大点,复杂度是O(n^2)级别,会超时。可以换一种角度,既然要找每个点可以达到的最大值,那么可以反向建图,从最大值出发,所经过的点能达到......