总时间限制:
1000ms
内存限制:
65536kB
描述
一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。
输入
输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1*1至6*6这六种产品的数量。输入文件将以6个0组成的一行结尾。
输出
除了输入的最后一行6个0以外,输入文件里每一行对应着输出文件的一行,每一行输出一个整数代表对应的订单所需的最小包裹数。
样例输入
0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0
样例输出
2
1
算法思想:
1.可见6*6,5*5,4*4,3*3都各需一个箱子
2.因为3*3箱子所搭配的箱子是不固定的,所以用个数组来保存不定情况
3.求剩余多少1*1箱子时,用整体减去已经存在的箱子最为简便
解决方案:
#include<iostream>
using namespace std ;
int main()
{
int a,b,c,d,e,f,i,sum;
int x,y ;
int p[4]={0,5,3,1};
cin>>a>>b>>c>>d>>e>>f ;
while(a||b||c||d||e||f)
{
sum = d+e+f+(c+3)/4 ; //3*3,4*4,5*5,6*6都可以确定需要的箱子
x = 5*d + p[c%4] ; //剩下能装多少个2*2
if(b>x) //2*2箱子多了
sum += ((b- x+8)/9);
y = 36*sum -f*36-25*e-16*d-9*c -4*b;//剩下能装多少个1*1
if(a>y)
sum += ((a-y+35)/36 );
cout<<sum<<endl ;
cin>>a>>b>>c>>d>>e>>f ;
}
return 0 ;
}
相关推荐
动态规划是一种用于解决多阶段决策问题的优化方法,由美国数学家R.E.Bellman在20世纪50年代提出。这种方法将复杂的问题分解成一系列相互关联的子问题,通过求解这些子问题来找到全局最优解。动态规划的核心思想是...
动态规划详细题目目录 动态规划是算法领域中的一种重要方法,它通过拆分问题、解决子问题、合并结果来解决复杂问题。下面是动态规划的详细题目目录,涵盖了背包问题、完全背包问题、混合背包问题、有依赖的背包...
动态规划 1005 打导弹 1006 乘积最大 1007 加分二叉树 1008 合唱队形 1017 最大0,1子矩阵 这题要想不超时,必须DP 1020 最大正方形 这题和1017很相似,不过有更快的解决方法 1021 背包问题 1022 Longest ...
【文档标题】:“1017培训.doc” - 这是一个关于公司培训管理制度的文档,由北大纵横管理咨询公司在2002年10月制定。 【文档描述】:未提供详细描述,但从标签“资料”可以推断,文档包含了关于公司内部培训的详细...
动态性则指出规划需随公司环境和员工需求变化而适时调整。 在组织和管理层面,员工被视为自我职业生涯管理的主要责任人,有权获取相关信息和公平的发展机会,同时有义务向公司表达个人职业计划和愿望,并自我管理。...
5. **动态规划**: 问题1011介绍了一种巧妙的动态规划策略,通过定义状态\(f[n]\)表示n个人组成队伍的方案数,并利用枚举和组合的思想来更新状态,体现了动态规划中状态转移的精髓。 6. **单调队列**: 在问题1012中...
3. POJ 1014 - 1017: 这部分题目可能涉及到动态规划、图论、最短路径或网络流等高级算法。解决这类问题需要对数据结构有深入理解,如链表、树、队列、栈和图。 4. POJ 1050: 这个编号的题目可能是某个特定主题的...
(1004)、Rate of Return(1017)、Exocenter of a Triangle(1059)、Hit or Miss(1003)、A Card Trick(1018)、Candy Sharing Game(1052)、Pushing Boxes(1041)、商人的宣传(1211)、Floors(1071)、...
- **解题思路**: 结合博弈论和状态压缩动态规划来解决问题。 15. **1017 TourGuide** - **知识点**: 图论、最短路径算法。 - **描述**: 寻找导游的最佳路线。 - **难度级别**: 中等。 - **解题思路**: 使用图...
动态规划是 ACM 题型分类中的一种,通过将问题分解成小问题,并使用递推公式解决问题。动态规划常用于解决具有最优子结构的问题。 相关题目:1037、1050、1088、1125、1141、1159、1160、1163、1458、1579、1887 ...
通过以上对部分题目的分析,我们可以看到NOIP题目覆盖了广泛的计算机科学和数学领域,如数制转换、排序算法、动态规划、贪心算法、字符串处理、图论等。这些问题不仅考验参赛者的编程能力,还需要具备扎实的数学基础...
最大子段和问题是动态规划的一个经典应用,要求理解动态规划的思想和状态转移方程。 **1025 经典DP,最长递增子序列** 最长递增子序列问题也是一个典型的动态规划问题,通常要求使用NLogN的方法来解决。 **1050 ...
这可能是解决一个特定算法问题的代码,可能是基于字符串处理、数组处理、动态规划或者复杂的数据结构问题。 在深入研究这些源代码时,开发者可能会学习到如何有效地利用C++语言特性来实现算法,包括但不限于函数...
- 动态规划可以用来解决更一般的情况,但可能需要较大的空间开销。 #### P1019 单词接龙 **所属知识点:** - 字符串处理技术(如字符串匹配、字符串搜索) - 图论中的最短路径算法(如Dijkstra算法、Floyd算法) *...
动态规划则常用于优化复杂度,如1017题可能需要利用状态转移方程进行动态规划求解。 4. **字符串处理**:字符串操作是许多题目中的核心部分,如1005题可能需要处理字符串的拼接、比较或模式匹配。了解字符串的基本...
字符串处理通常包括查找、替换、排序等操作,而动态规划则是一种解决最优化问题的有效方法,通过构建状态转移方程,将原问题分解为子问题,逐步求解。 2. **1006.cpp**:这道题目的解决可能运用了图论和搜索算法。...
该分类涵盖了多种算法和数据结构,包括排序、搜索、回溯、遍历、历法、枚举、数据结构的典型算法、动态规划、贪心、模拟、递归、字符串处理、数论、几何相关的题目、任意精度运算、数字游戏、高精度计算、概率统计、...
- **1002, 1007, 2159, 2231, 2371, 2388**:这些题目通常涉及到动态规划的基本思想及其变种,例如背包问题、最长公共子序列等经典问题。 - **1128, 1166, 1176, 1231, 1256, 1270, 1321, 1543, 1606, 1664, 1731, ...
LINGO是一款强大的数学优化建模语言,用于解决线性和非线性规划、整数规划、动态规划等多种优化问题。然而,在使用过程中,我们可能会遇到各种错误代码,这些代码是LINGO对其运行过程中遇到的问题的反馈。下面将详细...
动态规划在解决最优化问题时非常有效,如背包问题、最长公共子序列等。 4. **pat1017.cpp**:这道题目可能涉及到图论,如最小生成树(Prim或Kruskal算法)、最短路径(Dijkstra或Floyd算法)等。 5. **pat1018.cpp...