感谢有道翻译~~~

Description

A工厂生产的产品是用相同高度h的方形包装,尺寸为1* 1,2 * 2,3 * 3,4 * 4,5 * 5,6 6。这些产品总是以与产品高度h相同,尺寸为66的方形包裹寄给客户。

由于这些费用,减少从工厂向客户交付订购产品所需的包裹数量是工厂和客户的利益所在。一个好的程序可以解决根据订单找到交付给定产品所需的最

小包裹数的问题,这样可以节省很多钱。你被要求编制这样一个程序。

Input

输入文件由指定订单的几行代码组成。每一行指定一个顺序。订单由六个由一个空格分隔的整数描述,它们依次表示从最小的11到最大的66个

数据包的数量。输入文件的末尾由包含6个零的行表示。

Output

输出文件包含输入文件中每一行的一行。这一行包含可以将输入文件对应行中的订单打包到其中的最小包裹数。输出文件中没有与输入文件的

最后一行'' null'对应的行。

Sample Input

Examples

Input

0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0

Output

2
1

Analysis

比较复杂的模拟题。。。

这题其实还好啦~~~

我们知道:

6*6的情况下只能一个包裹放一个物品

55的情况下只能尽量放11的

44的情况下可以放11的22的,但要优先放22的因为1*1的会更灵活可以塞在更小的空隙中(好卑微)

33的情况下可以放11的22的33的,同样优先考虑33再22再1*1

22的情况下可以放11的22的,优先22的

1*1的就简单了直接看有多少空间就行了

重点是3*3的时候,

如果有1,2,3个3*3的就要考虑剩下的空间怎么放

当然还是优先体积大的放最后尽量塞1*1的进去

还有要注意用完了一种物品后记得清零

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int a,b,c,d,e,f,ans;
int main(){
while(cin>>a>>b>>c>>d>>e>>f){
if(a+b+c+d+e+f==0)break;//结束程序
ans=f;//6*6
if(e){//5*5
while(e){
if(a>=11)a-=11;//外面还可以塞11个1*1的
else a=0;
++ans,--e;
}
}
if(d){//4*4
while(b>0&&d>0){
if(b>=5)b-=5;//4*4的外面可以放5个2*2的
else {
int le=4*(5-b);//考虑塞2*2的放完剩下部分放1*1的
if(a>le)a-=le;
else a=0;
b=0;
}
++ans,--d;
}
while(d!=0&&a>0){//外面全放1*1的
if(a>=20)a-=20;
else a=0;
++ans,--d;
}
ans+=d;
}
if(c){//3*3
ans+=c/4;//4个3*3的可以拼在一起
c-=(c/4)*4;
if(c==3){//剩3个3*3的
if(b>=1){//可以放1个2*2的
if(a>=5)a-=5;//剩下的空间塞1*1的
else a=0;
--b;
}
else{//全放1*1的
if(a>=9)a-=9;
else a=0;
}
++ans;
}
if(c==2){//剩2个3*3的
if(b>=3){//可以放3个2*2的
if(a>=6)a-=6;//塞1*1的
else a=0;
b-=3;
}
else{//全放1*1的
int le=18-b*4;
if(a>=le)a-=le;
else a=0;
b=0;
}
++ans,c=0;
}
if(c==1){//剩1个3*3的
if(b>=5){//可以放5个2*2的
if(a>=7)a-=7;//塞1*1的
else a=0;
b-=5;
}
else{
int le=27-b*4;//全放1*1的
if(a>=le){
a-=le;
}
else a=0;
b=0;
}
++ans,c=0;
}
}
if(b){//2*2
ans+=b/9;//9个拼在一起
b-=(b/9)*9;
if(b){
int le=36-b*4;//剩下的只能和1*1的拼了
if(a>le)a-=le;
else a=0;
++ans;
}
}
if(a){//1*1
ans+=a/36;//36个拼在一起
a-=(a/36)*36;
if(a)++ans;
a=0;
}
cout<<ans<<endl;
}
}

POJ1017&&UVA311 Packets(中文题面版)的更多相关文章

  1. uva311 - Packets(贪心)

    题目:311 - Packets 题目大意:给出1*1, 2*2,3 *3, 4*4, 5*5, 6*6的箱子的个数,如今有若干个6*6的箱子,问最少用多少个箱子能够将给定的箱子都装进去. 解题思路: ...

  2. zrt中文题

    orzzrt.... 题意:给n个点n条边,问能形成几个无向连通图公式:ans=Σ(k=3~n){[n^(n-k)]* (n-1)!/2(n-k)!}推导:ans=Σ(k=3~n)(f(n,k)*h( ...

  3. 【poj1017】 Packets

    http://poj.org/problem?id=1017 (题目链接) 题意 一个工厂制造的产品形状都是长方体盒子,它们的高度都是 h,长和宽都相等,一共有六个型号,分别为1*1, 2*2, 3* ...

  4. 【Poj1017】Packets

    http://poj.org/problem?id=1017 艰难啊 弄了很久咧 拍了几十万组,以后拍要多组数据 Solution 从大wangxiaofang 从大往小放,有空余的从大往小填 注意细 ...

  5. UVA 311 Packets 贪心+模拟

    题意:有6种箱子,1x1 2x2 3x3 4x4 5x5 6x6,已知每种箱子的数量,要用6x6的箱子把全部箱子都装进去,问需要几个. 一开始以为能箱子套箱子,原来不是... 装箱规则:可以把箱子都看 ...

  6. BestCoder Round #89 B题---Fxx and game(单调队列)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5945     问题描述 输入描述 输出描述 输入样例 输出样例 题意:中文题,不再赘述: 思路:  B ...

  7. 51nod1118(水题)

    题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1118 题意: 中文题诶~ 思路: 因为机器人只能往下或者右 ...

  8. ACM: NBUT 1105 多连块拼图 - 水题 - 模拟

    NBUT 1105  多连块拼图 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:  Practice  Appoint ...

  9. CSU 1328 近似回文词(2013湖南省程序设计竞赛A题)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328 解题报告:中文题题意就不说了.还好数据不大,只有1000,枚举回文串的中心位置,然 ...

随机推荐

  1. Go语言标准库之log

    无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯. log Go语言内置的log包实现了简单的日志服务.本文介绍了标准库log ...

  2. linux中安装vsftpd出现的问题

    提示:安装vsftpd必须要在root用户下才能安装成功,进入root:su -(中间有空格) 问题: 1.再用命令getsebool -a | grep ftpd命令查看查看状态时出现的问题:SEL ...

  3. Mysql高手系列 - 第9篇:详解分组查询,mysql分组有大坑!

    这是Mysql系列第9篇. 环境:mysql5.7.25,cmd命令中进行演示. 本篇内容 分组查询语法 聚合函数 单字段分组 多字段分组 分组前筛选数据 分组后筛选数据 where和having的区 ...

  4. ADC0832

    #include <reg51.h> #include "ADC0832.c" code uchar seven_seg[]={0xc0, 0xf9, 0xa4, 0x ...

  5. js-数据交互--AJAX

    一:介绍 今天跟下大家简单的介绍一下,在前端开发中,前后端数据交互的一种手段,我们都知道,在前端往后端传送数据的话,利用get,post方法即可向后端发送数据,后端将数据接受,链接到数据库,进行数据库 ...

  6. 55 (OC)* 图片圆角处理

    iOS图片设置圆角性能优化   问题 圆角虽好,但如果使用不当,它就是你的帧数杀手,特别当它出现在滚动列表的时候.下面来看圆角如何毁掉你的流畅度的. 实测 layer.cornerRadius 我创建 ...

  7. Tcloud 云测平台-使用介绍

    Tcloud使用介绍 前端github地址:https://github.com/bigbaser/Tcloud后端github地址:https://github.com/bigbaser/Tclou ...

  8. JavaScript之JSON&AJAX

    今天为大家讲解JavaScript中非常流行的数据传输形式JSON和异步技术AJAX技术. 一 JSON JSON的全称是JavaScript Object Notation(js对象表示法),它是一 ...

  9. 关闭vue的eslint代码检测和WebStorm的代码检测

    1. 在vue项目中 bulid > webpack.base.conf.js 中: 如图,在rules规则中有一条规则是校验代码的,也就是红框2那行,要取消可以直接注释掉这行,或者把红框1的函 ...

  10. java架构之路-(mysql底层原理)Mysql事务隔离与MVCC

    上几篇博客我们大致讲了一下mysql的底层结构,什么B+tree,什么Hash需要回行啊,再就是讲了mysql优化的explain,这次我们来说说mysql的锁. mysql锁 锁从性能上分为乐观锁( ...