packets
packets 
总提交: 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
题目上传者
#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的更多相关文章
- 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 ...
- RUDP之二 —— Sending and Receiving Packets
原文链接 原文:http://gafferongames.com/networking-for-game-programmers/sending-and-receiving-packets/ Send ...
- Packets(模拟 POJ1017)
Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 47750 Accepted: 16182 Description ...
- PCI Express(三) - A story of packets, stack and network
原文出处:http://www.fpga4fun.com/PCI-Express3.html Packetized transactions PCI express is a serial bus. ...
- MySQL报错:Packets larger than max_allowed_packet are not allowed 的解决方案
在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet are not allowed”. 这是由于MySQL数据库有一个系 ...
- poj 1017 Packets 裸贪心
Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 43189 Accepted: 14550 Descrip ...
- What is martian source / martian packets
Martian source / Martian packets In Linux, by default, packets are considered individually for routi ...
- openstack 控制节点大流量对外发包,nf_conntrack,table full droping packets
某些人很MJJ,挂了N多代理来疯狂采集,把服务器带宽都耗尽了,没办法只好封掉一些! 目前发现的问题openStack kilo for ubuntu manuual运行一段时间后 云平台的控制节点p5 ...
- 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 ...
随机推荐
- C#实现发送邮件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- c - 计算1到20的阶乘
#include <stdio.h> /* 题目:求 1+2!+3!+...+20!的和 */ unsigned long long int factorial(long n) { uns ...
- Ubuntu12.4 64位 安装 arm linux gcc 4.3.2
一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...
- [个人原创]关于java中对象排序的一些探讨(三)
这篇文章由十八子将原创,转载请注明,并标明博客地址:http://www.cnblogs.com/shibazijiang/ 对对象排序也可以使用Guava中的Ordering类. 构造Orderin ...
- Java学习----方法的重载
一个类中有多个同名的参数不一样的方法. 作用:可以根据不同的条件调用不同的方法. 注意:java不会因为方法的返回类型或者权限的不同而判断为不同的两个方法. public class Student ...
- jvectormap 中国地图 (包括香港、台湾、澳门)
一个完整的中国地图(各个省,市.还有国两制),谢谢大家. 忘了网上哪位的范例,我加了些修改. <html xmlns="http://www.w3.org/1999/xhtml&quo ...
- connect函数
TCP客户用connect函数来建立与TCP服务器的连接 int connect (int sockfd, const sockaddr * servaddr, socklen_t addrlen); ...
- springmvc基于xml配置文件
web.xml 配置文件 <!-- springmvc 配置入口 --> <servlet> <servlet-name>mvc-dispatcher</se ...
- 转:NoSQL更适合担当云数据库吗
在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着Web应用数据规模的显著增长,NoSQL系统逐渐引起关注.领域专家Sherif Sakr分析指出,NoSQL具备的优势(能够水平扩展数据 ...
- SCALA常规练习C
package com.hengheng.scala abstract class Animal { def walk(speed : Int) def breathe() = { println(& ...