packets  

时间限制(普通/Java):1000MS/10000MS     运行内存限制:65536KByte
总提交: 27            测试通过: 14

描述

A factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered to customers in the square parcels of the same height h as the products have and of the size 6*6. Because of the expenses it is the interest of the factory as well as of the customer to minimize the number of parcels necessary to deliver the ordered products from the factory to the customer. A good program solving the problem of finding the minimal number of parcels necessary to deliver the given products according to an order would save a lot of money. You are asked to make such a program.

输入

The input file consists of several lines specifying orders. Each line specifies one order. Orders are described by six integers separated by one space representing successively the number of packets of individual size from the smallest size 1*1 to the biggest size 6*6. The end of the input file is indicated by the line containing six zeros.

输出

The output file contains one line for each line in the input file. This line contains the minimal number of parcels into which the order from the corresponding line of the input file can be packed. There is no line in the output file corresponding to the last ``null'' line of the input file.

样例输入

0 0 4 0 0 1
7 5 1 0 0 0
0 0 0 0 0 0

样例输出

2
1

题目上传者

crq

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm> using namespace std;
int v[10];
int ava[10];
int cnt = 0; void work() {
cnt = 0;//init
int res;//剩余的
cnt += v[6];//v[6] == 0;
if(v[5]) { //v[5] == 0;
cnt += v[5];
ava[1] += v[5]*11;//ava[1] += 11;!!!
}
if(v[4]) {
cnt += v[4];
ava[2] += v[4] * 5;
}
if(v[3]) {
int tag = true;
cnt += v[3]/4 ;//v[3] < 4; 3*3*4 == 36;
res = v[3]%4; //占用了几个. if(res==0) tag = false;
else cnt++; if(res==1 && tag) {//占用一个3*3
ava[2] += 5;
ava[1] += 7;
tag = false;
}
if(res==2 && tag){//two 3*3
ava[2] += 3;
ava[1] += 6;
tag = false;
}
if(res==3 && tag) {
ava[2] += 1;
ava[1] += 5;
tag = false;
}
}
if(v[2]) {
if(ava[2] >= v[2]) {
ava[1] += (ava[2]-v[2]) * 4;
}
else {
v[2] -= ava[2];
cnt += v[2]/9;//2*2*9 = 36
res = v[2]%9;
if(res != 0) cnt++;
ava[1] += (9-res) * 4;
}
}
if(v[1]) {
if(ava[1]>=v[1]) {
return;
}
else {
v[1] -= ava[1];
cnt += v[1]/36;
res = v[1]%36;
if(res) cnt++;
}
}
return;
} int main()
{
memset(ava, 0, sizeof(ava));
memset(v, 0, sizeof(v));
while(scanf("%d%d%d%d%d%d", &v[1], &v[2], &v[3], &v[4], &v[5], &v[6])==6) {
if(v[0]==v[1] && v[1]==v[2]&&v[2]==v[3]&&v[3]==v[4]&&v[4]==v[5]&&
v[5]==v[6]&&v[6]==0) break;
work();
printf("%d\n", cnt);
memset(ava, 0, sizeof(ava));
memset(v, 0, sizeof(v));
}
return 0;
}

packets的更多相关文章

  1. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    今天项目中报了如下错误 The last packet sent successfully to the server was 0 milliseconds ago. The driver has n ...

  2. RUDP之二 —— Sending and Receiving Packets

    原文链接 原文:http://gafferongames.com/networking-for-game-programmers/sending-and-receiving-packets/ Send ...

  3. Packets(模拟 POJ1017)

    Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 47750 Accepted: 16182 Description ...

  4. PCI Express(三) - A story of packets, stack and network

    原文出处:http://www.fpga4fun.com/PCI-Express3.html Packetized transactions PCI express is a serial bus. ...

  5. MySQL报错:Packets larger than max_allowed_packet are not allowed 的解决方案

    在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”. 这是由于MySQL数据库有一个系 ...

  6. poj 1017 Packets 裸贪心

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43189   Accepted: 14550 Descrip ...

  7. What is martian source / martian packets

    Martian source / Martian packets In Linux, by default, packets are considered individually for routi ...

  8. openstack 控制节点大流量对外发包,nf_conntrack,table full droping packets

    某些人很MJJ,挂了N多代理来疯狂采集,把服务器带宽都耗尽了,没办法只好封掉一些! 目前发现的问题openStack kilo for ubuntu manuual运行一段时间后 云平台的控制节点p5 ...

  9. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. (关于jdbc)

    The last packet sent successfully to the server was milliseconds ago. The driver has not received an ...

随机推荐

  1. Android虚拟机GenyMotion

    GenyMotion:需要VirtualBox,安装后可以选择机型,这个应该是Android for x86的一个改进版虚拟机,在原版的基础上针对不同机型用了和原机型同样的GUI,但是发现缺少了Goo ...

  2. Android打开系统的Document文档图片选择

    打开Document UI 过滤图片 private void startAcitivty() { Intent intent = new Intent(); intent.setAction(&qu ...

  3. 【转】iOS开发系列--数据存取

    原文: http://www.cnblogs.com/kenshincui/p/4077833.html#SQLite 概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储 ...

  4. iOS程序的完整启动过程(有storyboard)

    1.先执行main函数,main内部会调用UIApplicationMain函数 2.UIApplicationMain函数里面做了什么事情:1> 创建UIApplication对象 2> ...

  5. 【USACO 3.3.2】商品购物

    [描述] 在商店中,每一种商品都有一个价格(用整数表示).例如,一朵花的价格是 2 zorkmids (z),而一个花瓶的价格是 5z .为了吸引更多的顾客,商店举行了促销活动. 促销活动把一个或多个 ...

  6. ios 中获得应用程序名称和版本号

    IOS程序中的应用名称和版本号在 info.plist 文件中存储着,要想在程序中获得需要使用 NSBundle 对象 下面是示例代码: NSBundle *bundle = [NSBundle ma ...

  7. C盘不能新建文件的问题解决办法

    C盘不能新建文件的问题解决办法 主要症状: 1.C 盘文件不能修改2.C 盘不能新建文件3.总之就是只能读取不能,写入和修改这样对于平时操作造成了极其的不方便~~~复制文件到C 盘会提示:错误0×80 ...

  8. Java中的ExceptionInInitializerError异常及解决方法

    当在静态初始化块中出现了异常的时候,JVM会抛出 java.lang.ExceptionInInitializerError异常.如果你了解Java中的静态变量,你会知道它们是在类加载的时候进行初始化 ...

  9. jQuery键盘控制方法,以及键值(keycode)对照表

    键盘控制应用范围非常广泛,比如快捷键控制页面的滚动:在填写表单时候,限制输入内容:或者是屏蔽复制.粘贴.退后等功能.这里说说用jQuery怎么来实现.个人觉得jQuery比原生态的JS好用,代码简单清 ...

  10. 21 Merge Two Sorted Lists(两链表归并排序Easy)

    题目意思:对两个递增链表进行归并排序 思路:没什么好说的,二路归并 /** * Definition for singly-linked list. * struct ListNode { * int ...