题意:

      要搭配出来n种颜料,每种颜料要用mi升,除了这n种颜色还有一个合成灰色的毫升数,灰色是由三种不同的颜色合成的,三种m m m 的不同颜色能合成m升灰色,然后问你满足要求至少要多少盒颜色,这个1盒的定义是:一盒里面有n种颜色,每种50ml.

思路:

      先把所有的这n中颜色的最小需要合数求出来,然后在处理灰色,处理灰色的时候可以1升1升的合成,每次去当前最大的三个来合成1升,如果最大的三个有0的,那么就再来一盒(也就是一套),千万不要直接把最大的个颜色直接一下用完,要1升一升用,但是有小优化,就是用第三盒和第四和的差,如果相等就用1,这样感觉会快一点,我是这样想的,ac了,但是貌似又不优化都是0ms过吧,题目简单,但是挺好。


#include<stdio.h>
#include<string.h>
#include<algorithm> using namespace std; int cc[15];
int tt[15]; int main ()
{
int i ,j ,n ,hui;
while(~scanf("%d" ,&n) && n)
{
int max = 0;
for(i = 1 ;i <= n ;i ++)
{
scanf("%d" ,&cc[i]);
for(j = 0 ;;j++)
if(j * 50 >= cc[i])
{
if(max < j) max = j;
cc[i] = j * 50 - cc[i];
tt[i] = j;
break;
}
}
for(i = 1 ;i <= n ;i ++)
cc[i] += (max-tt[i]) * 50;
scanf("%d" ,&hui);
while(hui>0)
{
sort(cc + 1 ,cc + n + 1);
if(!cc[n] || !cc[n-1] || !cc[n-2])
{
max ++;
for(j = 1 ;j <= n ;j ++)
cc[j] += 50;
}
int tmp;
if(n == 3) tmp = cc[n-2];
else if(cc[n-2] == cc[n-3]) tmp = 1;
else tmp = cc[n-2] - cc[n-3];
hui -= tmp;
cc[n] -= tmp;
cc[n-1] -= tmp;
cc[n-2] -= tmp;
}
printf("%d\n" ,max);
}
return 0;
}

POJ2709 染料贪心的更多相关文章

  1. poj2709 贪心基础

    D - 贪心 基础 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bi ...

  2. nyoj 791——Color the fence——————【贪心】

    Color the fence 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 Tom has fallen in love with Mary. Now Tom w ...

  3. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  4. HDOJ 1051. Wooden Sticks 贪心 结构体排序

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

  5. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  7. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  8. 【BZOJ-4245】OR-XOR 按位贪心

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 486  Solved: 266[Submit][Sta ...

  9. code vs 1098 均分纸牌(贪心)

    1098 均分纸牌 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解   题目描述 Description 有 N 堆纸牌 ...

随机推荐

  1. Learn Python the Hard Way,ex37-1

    本练习为复习python的符号和关键字 关键字有: #and or False True print(1==0 and 2==0, 1==0 or 2==0) print(False) print(T ...

  2. Spring(一):Spring概述及相关概念

    Spring简介 Spring主要作用是用来解耦,降低代码之间的耦合度.根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑. 主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低: 系统 ...

  3. python-实现链式栈

    7 """ 8 用一个类来实现一个节点 9 """ 10 class Node(object): 11 def __init__(self, ...

  4. python的迭代

    迭代 1:并行迭代 程序可以同时迭代两个序列 names["zhangsan","lisi","zhaosi"] age[12,13,14] ...

  5. python网络编程TCP服务多客户端的服务端开发

    #服务多客户端TCP服务端开发 2 #方法说明 3 """ 4 bind(host,port)表示绑定端口号,host是ip地址,ip地址一般不进 行绑定,表示本机的任何 ...

  6. APIView里如何获取HTTP里的数据

    request.data.get()  获取post方法表单里的数据 request.post.get()  获取post方法表单里的数据 request.GET.get()  获取URL里的数据 r ...

  7. Android控件 之 TextClock & AnalogClock(模拟时钟)

    TextClock •简介 关于时间的文本显示,Android 提供了 DigitalClock 和 TextClock. DigitalClock是Android第1版本发布,功能很简单,只显示时间 ...

  8. 系统编程-信号-信号发送kill、raise、alarm

    信号发送 kill 和 raise函数 kill函数参数详解: 实验1 raise和kill 的使用 #include <stdio.h> #include <signal.h> ...

  9. PAT (Advanced Level) Practice 1023 Have Fun with Numbers (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1023 Have Fun with Numbers (20 分) 凌宸1642 题目描述: Notice that the number ...

  10. redis的主从复制(哨兵模式)

    p.p1 { margin: 0; font: 10px ".SF NS Text" } Master以写为主,Slave以读为主 读写分离 容灾恢复 一.一主多从 配置文件修改: ...