POJ1017 Packets(贪心)
2016-04-22 22:37
399 查看
题意:
有高度相同,底面积为1*1,2*2,3*3……6*6的产品,包裹底面积是6*6的,求最小的包裹数。
要点:
很明显是贪心,思路比较好理清楚,就是优先选大的产品,注意都是向上取整。
有高度相同,底面积为1*1,2*2,3*3……6*6的产品,包裹底面积是6*6的,求最小的包裹数。
要点:
很明显是贪心,思路比较好理清楚,就是优先选大的产品,注意都是向上取整。
15425287 | Seasonal | 1017 | Accepted | 164K | 16MS | C++ | 594B | 2016-04-22 22:17:47 |
#include<stdio.h> #include<stdlib.h> #include<string.h> int space2[4] = { 0,5,3,1 };//针对3剩余个数用2最多能填充几个 int main() { int a[15]; for (;;) { bool flag = true; for (int i = 1; i <= 6; i++) { scanf("%d", &a[i]); if (a[i] != 0) flag = false; } if (flag) break; int count = a[6] + a[5] + a[4] + (a[3]+3) / 4;//6,5,4都是直接加,3要向上取整 int used2 = a[4] * 5 + space2[a[3] % 4]; //2使用的个数,主要用来填充3和4 if (a[2] > used2) count += (a[2] - used2 + 8) / 9; //剩余的2作为新包裹 int used1 = count * 36 - a[6] * 36 - a[5] * 25 - a[4] * 16 - a[3] * 9 - a[2] * 4;//1无所谓,可以填充所有的包裹剩下的空间 if (a[1] > used1) count += (a[1] - used1 + 35) / 36;//如果1填充完所有的还有剩,就作为新包裹 printf("%d\n", count); } return 0; }
相关文章推荐
- python之pandas的使用:数据的导入技巧
- MySQL Workbench update语句错误Error Code: 1175.
- (插入)20150123--图片水印与MVC-02
- Yii2系列教程五:简单的用户权限管理
- C++新手之memset
- 1006
- 从无到有写一个C#弹球小游戏(二)
- thinkphp菜鸟学习笔记(一)
- Hello World
- (4.2.1.3)EventBus使用详解(二)——EventBus使用进阶
- Yii2系列教程四:实现用户注册,验证,登录
- [rospack] Error: package 'chapter3_tutorials' not found
- Linux下安装JDK和删除JDK
- mac pf 将本地80端口转发至80端口
- (4.2.1.2)EventBus使用详解(一)——初步使用EventBus
- 第87课:Flume推送数据到SparkStreaming案例实战和内幕源码解密--flume安装篇
- CNNs学习笔记(4):反向传播BP算法
- 一个很city的问题
- 六.Linux系统中的重要命令
- Yii2系列教程三:Database And Gii