题意:有1*1到6*6的的东西,需要用6*6的箱子将它们装起来。问:至少需要多少个6*6箱子

思路:

  1. 一个瓶子怎么装东西最多?先装石头,在装沙子,然后装水。
  2. 同样放在本题就是先装6*6然后5*5.....

想法上的一些解释:(如何装呢)

  • 6*6物品n件,需要箱子n个
  • 5*5物品n件,需要箱子n个,剩下 36n-25n个1*1的空余
  • 4*4物品n件,需要箱子n个,剩下5n个2*2的空余,1*1也有也有空余
  • 3*3物品n件,需要箱子(n+3)/4个(向上取余),如果只装1个3*3的箱子剩下5个2*2空余,2个3*3的箱子剩下3个2*2空余,3个3*3的箱子剩下1个2*2空余
  • ......

装箱子过程中的代码实现:

ans = p[] + p[] + p[] + (p[] + ) / ;
int cn_2 = p[] * + dir[p[] % ];
if (cn_2 < p[])
{
ans += (p[] - cn_2 + ) / ;
}
int cn_1 = ans * - p[] * - p[] * - p[] * - p[] * - p[] * ;
if (cn_1 < p[])
{
ans += (p[] - cn_1 + ) / ;
}

解题的代码:

#include <iostream>
#include <cstdio>
using namespace std;
int dir[] = { ,,, };
int p[];
int main()
{
int sum, ans;
while (true)
{
sum = ;
for (int i = ; i <= ; i++)
{
scanf("%d", &p[i]);
sum += p[i];
}
if (!sum)
{
break;
}
ans = p[] + p[] + p[] + (p[] + ) / ;
int cn_2 = p[] * + dir[p[] % ];
if (cn_2 < p[])
{
ans += (p[] - cn_2 + ) / ;
}
int cn_1 = ans * - p[] * - p[] * - p[] * - p[] * - p[] * ;
if (cn_1 < p[])
{
ans += (p[] - cn_1 + ) / ;
}
printf("%d\n", ans);
}
return ;
}

poj 1017 装箱子问题 贪心算法的更多相关文章

  1. poj 1017 装箱子(模拟+贪心)

    Description A factory produces products packed in square packets of the same height h and of the siz ...

  2. poj 1328 安雷达问题 贪心算法

    题意:雷达如何放置?在xoy二维平面坐标系里面,x轴上方的为岛屿,x轴下方的是雷达要放到位置,如何放使得雷达放的最少? 思路 肯定放在x轴上减少浪费是最好的选择 什么情况下,雷达无法到达呢?--以这个 ...

  3. poj 2586 Y2K Accounting Bug(贪心算法,水题一枚)

    #include <iostream> using namespace std; /*248K 32MS*/ int main() { int s,d; while(cin>> ...

  4. poj 2393 奶牛场生产成本问题 贪心算法

    题意:有一个奶牛场,第i周的生产成本为c,需要数量为 y,每周的存储成本为s.问怎么安排使得成本最低? 思路: 成本最低是吧?求出每周的最低成本*该周需要的数量就是成本最低 每周的成本有两个:自己本周 ...

  5. poj 3190 奶牛挤奶问题 贪心算法

    题意:奶牛挤奶问题,每只奶牛在[a,b]的时间内挤奶,要求挤奶的过程中不能不打扰,且只能自己一个人独享挤奶的机器.问最少需要多少个挤奶的机器? 思路: 对奶牛挤奶开始的时间从小到大开始排序. 将正在工 ...

  6. POJ 3617 Best Cow Line 贪心算法

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26670   Accepted: 7226 De ...

  7. POJ 1017 Packets【贪心】

    POJ 1017 题意: 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.  这些产品通常 ...

  8. POJ - 1017 贪心训练

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 59725   Accepted: 20273 Descrip ...

  9. poj 1088 滑雪(贪心算法)

    思想: (贪心算法 ,看到题目是中文才做的) 先对数组中的数据进行排序,从最小的数据计算 当前的顶点的可以滑行的最大值=max(周围可达的顶点的可以滑行的最大值)+1 这样计算最后产生的路径肯定是最大 ...

随机推荐

  1. PHP+Mysql+jQuery找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

  2. 洛谷-P3927 SAC E#1 - 一道中档题 Factorial

    原址 题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. ...

  3. AJPFX辨析Java中堆内存和栈内存的区别

    Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...

  4. JavaScript 函数(方法)

    1 定义 1.1 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. 语法: 函数就是包裹在大括号中的代码块,前面使用了关键词 function function 方法名(参数列表){ 代码 ...

  5. Cannot load JDBC driver class 'com.mysql.jdbc.Driver解决方法

    “Cannot load JDBC driver class 'com.mysql.jdbc.Driver ” 表示没有JDBC连接MySql的驱动包,因此需要手动添加驱动包到WEB-INF目录下的l ...

  6. C# 初始学习心情

    当听说需要转做.net的时候.内心是忐忑不安的.因为突然从前端转向后端,几乎完全颠倒了...一个注重界面实现功能.一个注重逻辑的开发,然并卵,服从需求吧. 虽说公司需要你转.但是时间是不允许的,所以只 ...

  7. linux机器上部署多台Tomcat

    在Linux机器上部署多台Tomcat, 我部署的是Tomcat8,只需要一步,即避免端口号冲突. 在解压后的tomcat目录下,修改conf下server.xml. 修改shutdown端口: &l ...

  8. Git命令图片版

  9. cmd_ping命令

    ping命令是网络命令里的核心命令,同时也是黑客入侵的基础命令.下面和大家分享一下ping命令的基础知识和一般用法. 以ping百度公司域名为例,介绍ping命令相关内容. 一.ping命令基础知识 ...

  10. 一个mybatis错误导致无法启动项目的问题

    今天遇到Mybatis一个问题,导致项目一直起不来,查了很久发现是MapperXML的错,问题表现为: 系统始终起不来,但也不报错,始终卡到如下信息位置: 信息: Initializing Sprin ...