poj 1017 Packets 裸贪心
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 43189 | Accepted: 14550 |
Description
Input
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 题意:工厂的包装盒都是6*6规格的,但是产品有1*1、2*2、3*3、4*4、5*5、6*6规格的,输入给出每种产品的个数,输出最少使用的包装盒数。
思路:由大到小装入,按实际剩余空间用2*2或1*1的填充。
AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
int b[], cot;
void test()
{
for(int i = ; i < ; i++)
cout<<b[i]<<" ";
cout<<cot<<endl;
}
int main()
{
freopen("1017.in","r",stdin);
freopen("1017.out", "w", stdout);
while(){
for(int i = ; i < ; i++){
scanf("%d", &b[i]);
}
int flag = ;
for(int i = ; i < ; i++){
if(b[i] == ) flag ++;
}
if(flag == ) break; cot = ;
if(b[] != ){
cot+=b[];
}
// test();
if(b[] != ){
cot+=b[];
int x = b[]*;
b[] = b[]-x>=?b[]-x:;
}
//test();
if(b[] != ){
int res = ;
cot+=b[];
res = *b[];
if(b[] != ) {
int x = b[] / ;
if( x >= b[]) { b[] = b[] - b[]*; res = ; }
else { res -= b[]*; b[] = ; }
}
if(b[] != && res != ) {
b[] = b[]>res?b[]-res:;
}
}
// test();
if(b[] != ) {
int x = b[] / , y = b[] % ;
int res = ;
cot += x;
if(y != ) cot++;
if(y == ){
res = b[] > ?:-b[]*;
b[] = b[] > ? b[]-:;
}
if(y == ){
res = b[]>? :-b[]*;
b[] = b[] > ? b[]-:;
}
if(y == ){
if(b[] != ) { res = ; b[] --; }
else res = ;
}
//cout<<"*"<<res<<endl;
if(res != &&b[] != ) b[] = b[]>res?b[]-res:;
}
// test();
if(b[] != ){
int y = b[] % ;
cot += b[]/;
if(y != ) {
cot++;
y = - y*;
b[] = b[]>y?b[]-y:;
}
}
// test();
if(b[] != ) {
cot += (b[] / );
b[] %= ;
if(b[] != ) cot++;
}
// test();
printf("%d\n", cot);
}
return ;
}
总结:贪心地做要比较细心,WA了很多次都是因为代码里的一点小问题,不用多组数据测都没发现。
下面是1000组数据的输入输出:
View data input:
View data output
poj 1017 Packets 裸贪心的更多相关文章
- POJ 1017 Packets【贪心】
POJ 1017 题意: 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. 这些产品通常 ...
- Poj 1017 Packets(贪心策略)
一.题目大意: 一个工厂生产的产品用正方形的包裹打包,包裹有相同的高度h和1*1, 2*2, 3*3, 4*4, 5*5, 6*6的尺寸.这些产品经常以产品同样的高度h和6*6的尺寸包袱包装起来运送给 ...
- poj 1017 Packets 贪心
题意:所有货物的高度一样,且其底面积只有六种,分别为1*1 2*2 3*3 4*4 5*5 6*6的,货物的个数依次为p1,p2,p3,p4,p5,p6, 包裹的高度与货物一样,且底面积就为6*6,然 ...
- POJ 1017 Packets(积累)
[题意简述]:这个是别人的博客,有清晰的题意描写叙述.和解题思路,借助他的想法,能够非常好的解决问题! [分析]:贪心?模拟?见代码 //216K 16Ms #include<iostream& ...
- POJ 1017 Packets
题意:有一些1×1, 2×2, 3×3, 4×4, 5×5, 6×6的货物,每个货物高度为h,把货物打包,每个包裹里可以装6×6×h,问最少几个包裹. 解法:6×6的直接放进去,5×5的空隙可以用1× ...
- POJ:1017-Packets(贪心+模拟,神烦)
传送门:http://poj.org/problem?id=1017 Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
- POJ 3190 Stall Reservations贪心
POJ 3190 Stall Reservations贪心 Description Oh those picky N (1 <= N <= 50,000) cows! They are s ...
- POJ 2392 Space Elevator(贪心+多重背包)
POJ 2392 Space Elevator(贪心+多重背包) http://poj.org/problem?id=2392 题意: 题意:给定n种积木.每种积木都有一个高度h[i],一个数量num ...
- POJ - 1017 贪心训练
Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 59725 Accepted: 20273 Descrip ...
随机推荐
- hibernate 注解写在哪?
是写在get方法上还是 还是成员变量上? 一般 成员变量是私有的,如果写在成员变量上,那么hibernate就能过通过反射机制直接访问到私有变量,破坏了数据的封装性: 所以 :推荐写在方法上,虽然写的 ...
- 04.Hibernate一对一关联
前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射.使用主键映射. 1.数据库表的一对一关联关系 本文根据客户信息表(tb_customer)和地址信 ...
- 【BZOJ】【3163】【HEOI2013】Eden的新背包问题
多重背包/思路题 多次询问,每次从所有物品中忽略一件,问最大收益…… 这题我用的zyf的一个“暴力”做法,就是先预处理出来g1[i][j]表示1~i号物品花了j块钱的最大价值,g2[i][j]表示i~ ...
- Word中字体背景有白块咋办
如下图,主要是从新浪博客贴过来的,先用记事本很麻烦. 1. 记事本转帖,麻烦,有公式的话需要单独处理,更麻烦 2.菜单栏中的油漆桶(段落那),有时候不行. 3.粘到QQ对话框再占回来,完美. 4. ...
- SQL 基本(Head First)
CREATE TABLE my_contacts( last_name VARCHAR(30), first_name VARCHAR(30), email VARCHAR(50), gender C ...
- themeforest 模板
如果给个人或一个客户使用就购买Regular License 多个项目或多人就徐需要购买Extended License,然后看你买html模版还是wordpress模版了.html需要你自己会编程将 ...
- JS中showModalDialog 详细使用(转)
基本介绍: showModalDialog() (IE 4+ 支持) showModelessDialog() (IE 5+ 支持) window.showModalDial ...
- Sqli-labs less 42
Less-42 Update更新数据后,经过mysql_real_escape_string()处理后的数据,存入到数据库当中后不会发生变化.在select调用的时候才能发挥作用.所以不用考虑在更新密 ...
- delphi中locate方法
TDataSet控件以及它的继承控件,例如TSimpleDataSet/TClientDataSet等都可以使用Locate方法在结果数据集中查寻数据.程序首先必须使用SQL命令从后端数据库中取得数据 ...
- CAS登录后回传除了ticket参数以外的其他自定义参数
在一次项目的技术选型中,选择了easyui+cas+shiro+spring的组合,cas实现了单点登录,这使得在一个应用中嵌入另一个应用的页面来展示数据所涉及到的授权方面变得简单. 由于shiro在 ...