POJ 1017--Packets

【题解】POJ 1017 Packets(贪心) POJ 1017 Packets 原题 https://vjudge.net/problem/POJ-1017 工厂生产的产品均为方形包装,包装高度为h,尺寸为1*1、2*2、3*3、4*4、5*5、6*6。这些产品总是以与产品高度h相同,尺寸为6*6的方形包裹寄给客户。由于费用,这是利益的工厂和客户的利益,以减少包裹的数量,从工厂交付订购的产品给客户。一个好的程序解决了寻找最小数量的包裹的问题,根据订单交付给定的产品将节省大量的钱。你被要求编写这样一个程序。 Input文件由指定订单的几行代码组成。 阅读详情

题意

题目的大意是,有若干个边长为1,2,3,4,5,6的正方形物品,需要放在边长为6的正方形盒子里,物品和盒子的高度均相同,问最少需要多少个盒子把所有物品装下。

分析

先考虑边长为4,5,6的,显然这每个物品都需要一个盒子,另外边长为3的每四个需要一个盒子。边长为4的物品装下后还可以拿来装边长为2的,边长3的装下后若有剩余空间也可以拿来装边长为2的,这样最后再考虑边长为1的,把先前的盒子填满后,若还有边长为1或2的再用新盒子装。

代码如下:
Memory: 248K Time: 32MS Length:23LINES

#include<iostream>
using namespace std;
int box[] = {0, 5, 3, 1};
inline bool input(int* s)
{
    int i = 0;
    while(i < 6 && cin >> s[i++]);
    return s[0] + s[1] + s[2] + s[3] + s[4] + s[5] > 0;
}
int main()
{
    int size[6];
    while(input(size))
    {
        int count = size[5] + size[4] + size[3] + (size[2] + 3) / 4;
        int len2 = 5 * size[3] + box[size[2] % 4];             //装边长2的
        if(size[1] > len2)  count += (size[1] - len2 + 8) / 9;  //若还有边长为2的
        int len1 = 36*count - 36*size[5] - 25*size[4] - 16*size[3] - 9*size[2] - 4*size[1];//装边长1的
        if(size[0] > len1)  count += (size[0] - len1 + 35) / 36;    //还有边长1的
        cout << count << endl;
    }
    return 0;
}
POJ1017-Packets 北大POJ1017-Packets 解题报告+AC代码 立即下载

相关推荐

STM32H743必要外围电路分析

写在前面:这篇博客是我第一次绘制STM32最小系统板的过程记录。 2020-1-11 BOOT STM32采用ARM内核,和ARM处理器一样,都有专门的boot脚决定单片机从何处启动。 在官方数据手册的第105页,我们可以看到 系统复位后,在SYSTICK的第四个上升沿锁存BOOT引脚的值,复位后,BOOT引脚可以由用户自由配置而不会影响系统正常运行。 BOOT引脚决定了自举存储器地址,当BO...

Cui_Hongwei的博客 1万+

POJ 百练 1017: 装箱问题

问题描述一个工厂制造的产品形状都是长方体,它们的高度都是 h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.  这些产品通常使用一个  6*6*h  的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。 输入数据 输...

markconca的博客 722

告别转换超时!手把手教你用Allegro2Altium.bat搞定AD21导入Allegro 17.2文件

本文详细介绍了如何使用Allegro2Altium.bat工具解决AD21导入Allegro 17.2文件时的转换超时问题。通过理解转换机制、准备离线环境、执行完整转换流程及高级技巧,帮助工程师高效完成PCB设计文件转换,提升工作效率。

weixin_30378623的博客 420

POJ1017题解(语音讲解题意以及样例分析)

题意: 就是给你6*6的包装箱子,再给你六个不同种类的箱子数量是通过输入限定的,让你去放,使用最少的包装箱子。 输入样例: 0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0 输出样例: 2 1 分析样例: 4 * 4和6 * 6的箱子必须分别使用一个包装箱也就是2 7个1 * 1的和5个2 * 2的和1个3 * 3的可以考裂先放3 * 3的,再放2 * 2的,1 * 1的随便塞就好了。 题目解答: 针对这个题其实刚开始会无从下手,其实仔细分析就会发现:(这个的单独指的

stn54999的博客 609

DDR核心机制解析:从Burst到Prefetch的性能跃迁

本文深入解析了DDR内存性能跃迁的核心机制,重点阐述了Burst(突发传输)与Prefetch(预取)技术的协同工作原理。Burst机制通过连续传输数据减少访问延迟,而Prefetch则通过内部预取数据提升吞吐量,两者结合完美匹配现代CPU缓存行需求,是DDR3等内存实现高效带宽的关键。

weixin_29232121的博客 135

硬件工程师笔记——电子器件汇总大全

本文系统总结了14种常用电子器件的工作原理及功能应用,包括电阻、压敏电阻、电容、电感、二极管、三极管、MOS管、晶振、光耦、IGBT、继电器、磁珠、可控硅和线性稳压器。每种器件从结构原理、工作特性到典型应用进行全面解析,如电阻的限流分压、电容的储能滤波、三极管的放大开关等。重点阐述了各器件在电路设计中的关键作用,如IGBT的功率控制、继电器的隔离保护、LDO的电压稳定等,并提供了实际电路应用案例。文章还整理了硬件工程师笔试面试相关的知识点和真题资源,为电子工程师提供全面的技术参考。

XU157303764的博客 2万+

poj1017(一般贪心,容器类)

/* translation: 有6*6的箱子,以及1*1,2*2,3*3,4*4,5*5,6*6的产品若干。要把这些产品全部装进箱子,求能用到的箱子的最小个数? solution: 贪心加上模拟,具体做法见代码注释。 note: # 开始想法是一个箱子一个箱子地装,每次从大到小拿出产品放进去。想法没错,但是怎样判断当前产品能否装进去就成了 问题。后来采取网上的做法,从大到小一次性把当前产

林伏案的博客 347

[QMT量化交易小白入门]-七十三、主力资金动向:板块与个股资金流数据API(量化python代码解析)

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1113

POJ_1017_Packets

<br />///贪心,先装大的箱子,后装小的箱子,在6*6中我是用剩余面积表示是否还能再装入箱子,装6,5,4,都不会 ///有什么问题,但是装3*3时会对结果有影响,因此轮到装3*3时要特别考虑对2*2的影响,当然对1*1没 ///多少影响 #include<stdio.h> int packets[7]; int main() { while(1) { int i,end=0; for(i=1;i<7;i++) { scanf("%d",&packets

fengyu0556的专栏 729

【硬刚Hadoop】HADOOP MAPREDUCE(1):概述

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hadoop部分补充。 1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2MapReduce优缺点 2.1 优点 1)MapReduce易于编程 它简单的实现一些接口,就可以完成一个分布式程序..

微信搜:import_bigdata,大数据领域硬核原创作者 462

【2005】人工智能⭐

问题的解答来自于过去的经验而不是规则,这些经验是以案例方式存储的。但是当人们遇到一个新的问题的时候,一般先是回忆,从记忆中找到一个与新的问题相似的案例,然后把该案例的有关信息和知识复用到新问题的求解之中。1、若案例(case)不够充足,而有足够的规则(知识),试问如何构建一个包含有基于案例推理和基于规则推理的推理系统,以使推理效率提高而且总能求得问题的解。一般认为,CBR适合缺乏完备和健全的理论,但又可获取丰富经验的领域,而RBR则适合于对领域有充分的认识,能以完备和健全的形式表示领域理论的场合。

super_mochi1 279

POJ1017 Packets

POJ1017 PacketsDescription 一个工厂制造的产品都是高度为h,长和宽相等的长方体,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个6*6*h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。

Lxp的博客 608

OmniDrive(2):环境搭建

项目中使用的是全量的数据集(full dataset v1.0), 数据量比较大,训练验证(trainval) + test 总计200多G的数据,单独一个个下载会比较慢。参数,否则安装的时候会自动卸载已安装好的torch,重新安装最新版本的torch,这是不允许的。在cuDNN官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,== 博文中详细介绍了完整的cuda和cudnn的安装过程==分析: 这是因为yapf 安装的版本不对,需要安装特定的版本。出现训练的loss变化,就说明可以正常训练了。

@bangbang的博客 623

POJ1017 Packets

大致题意 工厂生产以相同高度h并且尺寸为1 * 1,2 * 2,3 * 3,4 * 4,5 * 5,6 * 6的方形包装包装的产品。这些产品始终以与产品相同的高度h和尺寸6 * 6的正方形包裹交付给客户。(来自google翻译)然后题目要求用最少数量的包裹装载这些产品。 解题步骤由于产品规格较少可以直接暴力求解,将产品按产品规格从大到小装入包裹,在装大规格产品的同时将小规格产品”塞入空隙“,这样

tiana_的博客 579

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ 1017 Packets

POj 1017 Packets   Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31043   Accepted: 10279 Description A factory produces products pa

herongwei 的 BLOG 961

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

张三的包裹厂:C++用贪心算法解POJ1017_Packets问题

POJ1017 Packets 题目链接: POJ1017 Packets 简单理解一下题目: 张三的包裹厂需要将一定数量的盒子放进统一66大小的包裹里打包给客户,所有盒子包括最后的包裹高都为h,也就是说我们只需要考虑横向面积就可以。然后要考虑到不能只按照面积来算,比如66的包裹放了55的盒子之后,66-55=11,尽管33小于11,也放不下,只能放进去1*1的,因为长宽两边都只剩下1宽度的空隙。 简单分析一下题目: 这个题我一开始我的代码一直WA,后来看见Discuss里有个大佬6行就写出来了,属实是让人

只想AC的博客 488

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ACM学习-POJ-1017-Packets

菜鸟学习ACM,纪录自己成长过程中的点滴。 学习的路上,与君共勉。  ACM学习-POJ-1017-Packets Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 40435   Accepted: 13553 Descr

Colin丶 3329

POJ 1017 Packets 贪心

题目链接: POJ—1017 Packets 贪心,直接用6*6的大箱子,然后从大到小往里装就行了。

ChenyangDu的博客 432

poj 1017 Packets (贪心算法)

题目链接:poj1017 Packets 题目大意:现在分别有11,22…66的二次元箱子若干,问至少需要几个66的二次元箱子才能装下。 题解:真的想了超级久的题,想着能不能用什么面积相关,长和宽之类的解法,无奈看了题解,结果是用了找规律的办法。贪心策略:优先放入大的箱子,66,55,44的箱子都会直接花一个箱子来装,33的一个箱子可以装四个,看剩下的缝隙能不能塞下剩下的箱子。 #include ...

weixin_44880917的博客 369

poj 1017 Packets

poj 1017 http://poj.org/problem?id=1017 原本bug超多的代码 #include<stdio.h> int main() { int a[7]; while(scanf("%d %d %d %d %d %d",&a[1],&a[2],&a[3],&a[4] ,&a...

aocang4831的博客 192

POJ 1017 Packets

POJ 1017题目大意如下: 有1*1、2*2、3*3、4*4、5*5、6*6这六种型号的包装盒,也指定了相对于这六种型号的产品的分别的数量。由于物流运送费用是和运送商品的数量成正比的(商品运送的时候是包装在包装盒里的),为了节省物流开支,需要确定一种最佳的包装方案,即:使用最少数量的包装盒。 简单的贪心,具体分析如下: 1)都使用6*6的包装盒; 2)如果一个包装盒里包装的是6*6

kornberg_fresnel的博客 381

poj1017 packets

装箱问题       问题描述     一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个 型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.  这些产品通常使用一个  6*6*h       的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的 包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由 你来设计。      输入数据      输入文件包括几行,每一行代表一个订单。每个订单里

万里晴空 8350

转载POJ1017-Packets,POJ2393POJ 2376

POJ1017-Packets - 优快云博客 https://blog.youkuaiyun.com/lyy289065406/article/details/6674366 本题除了原作者已经注释的部分,还要注意式子中+3,+8,+35的含义是多余部分也要占一个箱子,这个箱子随后被其他更小的箱子填满,是一个复杂的箱子,但要记得把这个箱子加上,所以加上这几个数既能够保证安排多余的箱子,又能够保证不会凭空...

huaiyingdetective的博客 184

POJ 1017——Packets

题目链接:http://poj.org/problem?id=1017高只是摆设,题目只是平面填图,翻译过来就是,有1*1,2*2,3*3,4*4,5*5,6*6六种纸板,给出这几个面板的数量,问最少需要多少个6*6纸框才能装完,不才,只能一步一步模拟。思路:6*6只能单独装成一个,一个5*5可以附带11个1*1,一个4*4可以附带5个2*2或若干个2*2和若干个1*1,3*3的因为可能造成空缺,...

sifangege的博客 282
上一篇: POJ 1018--Communication System
下一篇: POJ 1016--Numbers That Count
Hering_Linux
博客等级 码龄12年 0粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值