A - 装箱问题
Problem Description
一个工厂生产的产品形状都是长方体,高度都是h,主要有1*1,2*2,3*3,4*4,5*5,6*6等6种。这些产品在邮寄时被包装在一个6*6*h的长方体包裹中。由于邮费很贵,工厂希望减小每个订单的包裹数量以增加他们的利润。因此他们需要一个好的程序帮他们解决这个问题。你的任务就是设计这个程序。
Input
输入包括多组测试数据,每一行代表一个订单。每个订单里的一行包括六个整数,用空格隔开,从小到大分别为这6种产品的数量。6个0表示文件结束。
Output
针对每个订单输出一个整数,占一行,代表对应的订单所需的最小包裹数。没有多余的空行。
Sample Input
0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0
Sample Output
2
1
#include <iostream>
#include <math.h> using namespace std; int main(int argc, const char * argv[])
{
int boxA,boxB,boxC,boxD,boxE,boxF;//不同底面积箱子数量
int left2x2,left1x1;
int countBox;//使用大箱子数量 while(cin>>boxA>>boxB>>boxC>>boxD>>boxE>>boxF)
{
//结束条件
if (boxA == && boxB == && boxC == && boxD == && boxE == && boxF == )
{
break;
}
//体积为4、5、6的有一个就需要一个箱子,体积为3的需要boxC / 4个箱子
countBox = boxD + boxF + boxE + (boxC + ) / ; //剩余的空间我们采取贪心的策略,先放2 * 2的箱子,4 * 4的箱子还剩下boxD * 5个2 * 2的空间
left2x2 = boxD * ; //对于3 * 3底面积的需要分情况讨论
if (boxC % == ) //3 * 3的箱子装完了还剩下3个,只留下了1个2 * 2的空间
{
left2x2 += ;
}
else if (boxC % == ) //这种情况下留下了3个2 * 2的空间
{
left2x2 += ;
}
else if (boxC % == ) //注意哦,这种情况下最多可以留下5个2 * 2的空间哈
{
left2x2 += ;
} if (left2x2 < boxB)
{
countBox += (((boxB - left2x2) + ) / ); //2 * 2箱子没地方的,开新箱子。
}
//解决了2 * 2的空间还剩下1 * 1的,总体积减去所有其他箱子的体积,就剩下1 * 1的空间了。
left1x1 = * countBox - * boxF - * boxE - * boxD - * boxC - * boxB;
if (left1x1 < boxA)//空间不够,加大箱子
{
countBox += (((boxA - left1x1) + ) / );
}
cout
A - 装箱问题的更多相关文章
- TYVJ P1016 装箱问题
P1016 装箱问题 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 太原成成中学第2次模拟赛 第三道 描述 有一个箱子容量为v(正整数,o≤v≤20000) ...
- wikioi 1014 装箱问题
来源:http://wikioi.com/problem/1014/ 1014 装箱问题 29人推荐 收藏 发题解 提交代码 报错 题目描写叙述 输入描写叙述 输出描写叙述 例子输入 例子输出 提示 ...
- 装箱问题的CPLEX求解
装箱问题(Bin Packing Problem) 装箱问题即搬家公司问题.一个搬家公司有无限多的箱子,每个箱子的承重上限为W,当搬家公司进入一个房间时,所有物品都必须被装入箱子,每个物品的重量为wi ...
- 洛谷 P1049 装箱问题
\[传送门在这呢!!\] 题目描述 有一个箱子容量为\(V\)(正整数,\(0 \le V \le 20000\)),同时有\(n\)个物品(\(0<n \le 30\),每个物品有一个体积(正 ...
- 装箱问题(NOIP2001&水题测试2017082401)
题目链接:装箱问题 这题经典的01背包. 动规. 设计状态f[n][V]表示前n个物体放在V中的最大体积是多少. 所以代码如下: #include<bits/stdc++.h> using ...
- luogu1049装箱问题
装箱问题 传送门 一个箱子容量为V//容量 同时有n个物品//n个 体积&&价值 要求n个物品中任取若干个装入箱内,使箱子的剩余空间为最小// v减去价值最大 */ #include& ...
- codevs 3152 装箱问题3
装箱问题3 http://codevs.cn/problem/3152/ 题目描述 Description 设有n种物品,记作A1.A2.….An,对应于每个Ai(1<=i<=n)都有一个 ...
- 蓝桥杯 算法训练 ALGO-21 装箱问题
算法训练 装箱问题 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每 ...
- P1049 装箱问题
装箱问题 题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使 ...
- 装箱问题【STL】
7-9 装箱问题(20 分) 假设有N项物品,大小分别为s1.s2.-.si.-.sN,其中si为满足1≤si≤100的整数.要把这些物品装入到容量为100的一批箱 ...
随机推荐
- telegraf1.8+influxdb1.6+grafana5.2 环境搭建 结合JMeter3.2
telegraf1.8+influxdb1.6+grafana5.2 环境搭建 结合JMeter3.2 参考地址:https://blog.csdn.net/laisinanvictor/articl ...
- Android商城开发系列(九)—— 首页频道布局的实现
在上一篇博客当中,我们讲了关于首页轮询广告的实现,接下来讲解一下首页频道布局的实现,如下图所示: 这个布局用的是gridview去完成的,新建一个channel_item,代码如下所示: <?x ...
- nginx只允许域名访问网址,禁止ip访问
修改nginx配置 文件 在server段里插入如下正则: if ( $host != 'www.baidu.com') { return 403; } 说明:如果访问讨还不是www.baidu.co ...
- Vue风格指南总结及对应ESLint规则配置
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10906951.html,多谢,=.=~ 必要的:规避错误: 强烈推荐:改善可读性和开发体验: 推 ...
- python爬虫之路——初识函数与控制语句
介绍python函数的定义与使用方法,介绍Python的常用控制语句:判断和循环 函数: 格式 def 函数名(参数1,参数2): return ‘结果’ 判断语句:就是多选一 二选一: if c ...
- Ruby中访问控制符public,private,protected区别总结
重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 private C++, “private” 意为 “private to this cla ...
- java基础—object类
一.Object类介绍
- Java基础面试题: 份证号码组成规则是前4位是代表省份和地区 编写一个程序,通过身份证号码判断某人是否是武汉人以及其性别。
package com.swift; public class ID_Where_Male_Test { public static void main(String[] args) { /* * 中 ...
- IOS版本判断
-(void)getIOSVersion { //#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000 //此方法和编译器相关 //quanju.iOS ...
- Vue路由跳转到新页面时 默认在页面最底部 而不是最顶部 的解决
今天碰到一个问题 vue路由跳转到新的页面时会直接显示页面最底部 正常情况下是显示的最顶部的 而且好多路由中不是全部都是这种情况 折腾好长时间也没解决 最后在网上找到了解决办法 其实原理很 ...