题意:

有6种面积的格子,给出这些格子的数量,然后有6*6的格子去容纳这6种面基,问最少需要几个6*6格子,使得所有类型的小格子被容纳。

思路:

按照面积的从大到小放。

一开始还是太天真,还要用各种1去补,wa了一发…

具体都在代码那里注释了

贴一发瞎写的挫code……….

#include <iostream>
#include <cstdio>
#include<vector>
#include <cstring>
#include <algorithm>
using namespace std;
typedef __int64 LL; int a[10]; int main()
{
while(1)
{
bool flag=false;
for(int i=1;i<=6;i++)
{
scanf("%d",&a[i]);
if(a[i])
flag=true;
}
if(!flag)
break;
int ans=0;
ans+=a[6]; if(a[5])
{
ans+=a[5]; //5 只能一个
if(a[1]<=11*a[5]) //用 1 去填
a[1]=0;
else
a[1]-=11*a[5];
} if(a[4])
{
ans+=a[4];
if(a[2]<=5*a[4]) //如果在那么里面,2 填完,上 1
{
int x=a[4]*36-16*a[4]-a[2]*4; //剩下的 1 的数量
if(a[1]<=x)
a[1]=0;
else
a[1]-=x;
a[2]=0;
}
else //这里填了 4 后剩下的区域都是 2 填
a[2]-=5*a[4];
}
if(a[3])
{
ans+=a[3]/4; //4个3正好填满
int x=a[3]%4;
if(x==1) //剩一个3
{
ans+=1;
if(a[2])
{
if(a[2]<=5) //一个3以后最多填5个2,这里是 2 不够了
{
int y=36-9-a[2]*4;
if(a[1]<=y)
a[1]=0;
else
a[1]-=y;
a[2]=0;
}
else
{
a[2]-=5; //这里是2够的,只能+11 个 1
if(a[1]<=11)
a[1]=0;
else
a[1]-=11;
}
}
}
else if(x==2)
{
ans+=1;
if(a[2]<=3) //两个3以后最多天3个2,这里是不够
{
int y=36-18-a[2]*4; //用1补
if(a[1]<=y)
a[1]=0;
else
a[1]-=y;
a[2]=0;
}
else //2够的话,最多填6个1
{
if(a[1]<=6)
a[1]=0;
else
a[1]-=6;
a[2]-=3;
}
}
else if(x==3)
{
ans+=1;
if(a[2]<=1) //最多只能填1个 2 ,不够
{
int y=9-a[2]*4;
if(a[1]<=y) //用1补
a[1]=0;
else
a[1]-=y;
a[2]=0;
}
else
{
if(a[1]<=5) //2够的话,只能上5个 1
a[1]=0;
else
a[1]-=5;
a[2]-=1;
}
}
}
if(a[2])
{
ans+=a[2]/9; //9个2正好填满
int x=a[2]%9;
if(x) //2*2还有的多
{
ans+=1;
int y=36-x*4; //用1补
if(a[1]<=y)
a[1]=0;
else
a[1]-=y;
}
}
if(a[1])
{
ans+=a[1]/36; //36个1*1正好填满
int x=a[1]%36;
if(x) //不够补。
ans++;
}
printf("%d\n",ans);
}
return 0;
}

POJ1017 【据说是贪心...】的更多相关文章

  1. poj-1017 Packets (贪心)

    http://poj.org/problem?id=1017 工厂生产高度都为h,长和宽分别是1×1 2×2 3×3 4×4 5×5 6×6的6种规格的方形物品,交给顾客的时候需要包装,包装盒长宽高都 ...

  2. 最少拦截系统(杭电1257)(DP)+(贪心)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  3. Codeforce 835B - The number on the board (贪心)

    Some natural number was written on the board. Its sum of digits was not less than k. But you were di ...

  4. POJ-2181 Jumping Cows(贪心)

    Jumping Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7329 Accepted: 4404 Descript ...

  5. Jump Game I&&II——入门级贪心算法

    Jump Game I Given an array of non-negative integers, you are initially positioned at the first index ...

  6. BZOJ1150 [CTSC2007] 数据备份Backup 贪心_堆_神题

    Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家 ...

  7. C/c.pp:贪心,二分答案

    说是贪心有点牵强. 其次,答案满足单调性,如果在k次操作能完成那么在k+1次操作内也能完成. 因为大不了你就把多的一次对方操作再进行一次就好了. 怎么操作呢? 我们从头扫这个序列,遇到每一个不匹配位置 ...

  8. 修理牛棚 贪心 USACO

    今天开始终于可以刷USACO的题啦 准备每一道都发一个题解 1010: 1.3.2 Barn Repair 修理牛棚 时间限制: 1 Sec  内存限制: 128 MB提交: 9  解决: 7[提交] ...

  9. hdu4864 贪心

    题意:        给你n太机器,m个任务,每个任务和机器都有两个权值x,y,每个机器只能被一个任务使用,条件是机器的两个权值分别比任务的大于等于,每个任务获得的价值是x*500+y*2,问你最多能 ...

随机推荐

  1. Override和Overload差别,Overloaded的方法能否够改变返回值的类型?

    Overload是重载的意思, Override是覆盖的意思,也就是重写. 重载Overload表示同一个类中能够有多个名称同样的方法,但这些方法的參数列表各不同样(即參数个数或类型不同). 重写Ov ...

  2. react jsx 数组变量的写法

    1.通过 map 方法 var students = ["张三然","李慧思","赵思然","孙力气","王萌 ...

  3. HDU 1060 Leftmost Digit (数学/大数)

    Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  4. v-model指令及其修饰符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Java堆内存与栈内存对比

    在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有什么异同,以及和数据结构中的堆栈有何关系? 一.Java 堆存储空间 堆内存(堆存储空间)会在Java运行时分配 ...

  6. 获取Wifi密码,不知道是不是真的

    package com.example.wifipassword; import java.util.List; import android.app.Activity; import android ...

  7. C# does not contain a constructor that takes no parameter

    C# 中子类要重用父类的构造函数时, 一般会在子类构造函数后面调用 : base(paratype, para). 如果父类有一个參数个数为1的构造函数, 没有 0 參构造函数. 子类想要重用这个构造 ...

  8. VUE 之 组件

    组件是为了解决页面布局的. 什么是单页面? 答:整个页面的切换都是在这个页面上进行变化的,没有页面的刷新. 1.全局组件 1.1全局组件流程:    1.创建全局组件======>创建一个Vue ...

  9. ajax 提交所有表单内容及上传图片(文件),以及单独上传某个图片(文件)

    我以演示上传图片为例子: java代码如下(前端童鞋可以直接跳过看下面的html及js): package com.vatuu.web.action; import java.io.File; imp ...

  10. AIM Tech Round (Div. 2) C. Graph and String

    C. Graph and String time limit per test 2 seconds memory limit per test 256 megabytes input standard ...