模拟题,在合成灰色的时候,每次取当前剩余最多的三种颜色,各取1mL合成。然后重新看剩余最多的是哪三个。

#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <functional>
#include <queue>
using namespace std; #define MAX_COLOR_NUM 20 int color_num;
int gray_vol;
int color_vol[MAX_COLOR_NUM];
int ans; void input()
{
int max_vol = ;
for (int i = ; i < color_num; i++)
{
scanf("%d", &color_vol[i]);
max_vol = max(color_vol[i], max_vol);
}
scanf("%d", &gray_vol);
ans = (max_vol + ) / ;
} void produce_gray()
{
priority_queue<int> pq;
for (int i = ; i < color_num; i++)
if (color_vol[i] != )
{
pq.push(color_vol[i]);
color_vol[i] = ;
}
while (pq.size() >= )
{
int a = pq.top();
pq.pop();
int b = pq.top();
pq.pop();
int c = pq.top();
pq.pop();
a--;
b--;
c--;
gray_vol--;
if (a)
pq.push(a);
if (b)
pq.push(b);
if (c)
pq.push(c);
}
int i = ;
while (!pq.empty())
{
color_vol[i] = pq.top();
pq.pop();
i++;
}
} void work()
{
for (int i = ; i < color_num; i++)
color_vol[i] = ans * - color_vol[i];
while ()
{
produce_gray();
if (gray_vol <= )
break;
ans++;
for (int i = ; i < color_num; i++)
color_vol[i] += ;
}
printf("%d\n", ans);
} int main()
{
while (scanf("%d", &color_num), color_num)
{
input();
work();
}
return ;
}

最新文章

  1. HDU3948 &amp; 回文树模板
  2. sublime3安装liveload,实现前端自动F5刷新html界面
  3. p2p网贷项目开发全过程技术详解,应用框架是ci2.2
  4. Hadoop学习笔记(5) ——编写HelloWorld(2)
  5. 【POJ】1084 Square Destroyer
  6. c++ 派生类向基类转换的可访问性
  7. HTML - HTML Commonly Used Character Entities
  8. 分页功能的实现——Jdbc &amp;&amp; JSP
  9. 如何通过navigator.userAgent判断是哪款浏览器?
  10. Python全栈开发之---assert断言
  11. linux 进阶命令
  12. Luogu T29912 fuck
  13. Ubuntu软件操作的相关命令
  14. SQLServer中进行sql除法运算结果为小数时显示0的解决方案
  15. 内存管理 初始化(四)mem_init bootmem 迁移至伙伴系统
  16. python的print
  17. Tomcat部署Web应用
  18. [转]Jsp 与 JavaBean
  19. Basic4android v3.20 发布
  20. block中self关键字的使用-防止self 被retain一次

热门文章

  1. kickstart自动化安装
  2. [转帖] k8s kubectl 命令行技巧
  3. msyql: navicat 连接时msyql遇到的问题
  4. hdu 6315 Naive Operations (2018 Multi-University Training Contest 2 1007)
  5. Django_ KindEditor 插件使用
  6. 【刷题】LOJ 6223 「网络流 24 题」汽车加油行驶问题
  7. 如何用React, Webcam和JS Barcode SDK创建Web扫码App
  8. 【BZOJ1485】[HNOI2009]有趣的数列(组合数学)
  9. P3232 [HNOI2013]游走 解题报告
  10. java同步代码(synchronized)中使用BlockingQueue