POJ 2709 Painter 【贪心算法】
【原题链接】
http://acm.pku.edu.cn/JudgeOnline/problem?id=2709
【题目大意】
要配置出n(3<=n<=12)种颜色的颜料,并配置出一定量的灰色颜料,可知灰色颜料可以用任意三种非灰色的颜料等量混合后获得,现输入每种颜色(包括灰色)需要的颜料的量,求解需要多少份颜料(每份颜料包括除黑色外的所有颜色,每种颜色每瓶体积为50ml)。
【解题思路】
用贪心算法,体积逐ml递减混合,所需量逐渐增加,最终得到所需颜色的份数。
【备注】
此处混合不一定是逐瓶混合,可以是任意体积混合。
【源程序】
[code]
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
long colVol[20],remain[20];
bool cmp(long a,long b) { return a>b; }
int main()
{
long colNum,gray,i,empty,in;
while(cin>>colNum,colNum)
{
for(i=0;i<colNum;i++) cin>>colVol[i];
sort(colVol,colVol+colNum);
cin>>gray;
if(colVol[colNum-1]%50) in=(colVol[colNum-1]/50+1)*50;
else in=colVol[colNum-1];
//此时in为不配得黑色时所需要加入的量
for(i=0;i<colNum;i++) remain[i]=in-colVol[i];//remain为可以用来配的黑色的量
while(gray)//如果配的黑色需要的量不为0,则循环一直进行
{
sort(remain,remain+colNum,cmp);//每次由高到低排序
if(!remain[2])//如果剩下量第三位的颜色已经用尽,那么再用一份颜料
{ in+=50; for(i=0;i<colNum;i++) remain[i]+=50; }
remain[0]--; remain[1]--; remain[2]--; gray--;
}
cout<<in/50<<endl;//输出瓶数
}
return 0;
}
[/code]
转载于:https://www.cnblogs.com/goodness/archive/2010/03/05/1678905.html
POJ 2709 Painter 【贪心算法】相关推荐
- poj 2709 Painter——贪心 买颜料问题
转载于:http://blog.chinaunix.net/uid-22263887-id-1778908.html Painter Description The local toy store s ...
- POJ 2709 Painter
题意: 一个商店里有许多颜料盒,但是每个颜料盒里面没有 grey 这种颜色,而这种颜色可以由任意其他三种颜色配成,每个颜料盒里一开始有 50ml 的各种非 grey 颜色, 告诉了 每种颜色和grey ...
- 贪心算法—区间调度 电影节(POJ 4151)
贪心算法--区间选取问题 或是区间调度问题 本文解决一个很经典的贪心算法问题 Interval Scheduling(区间调度问题).给你很多形如[start,end]的闭区间,请你设计一个算法,算出 ...
- 贪心算法—建立雷达(POJ 1328)
贪心算法--区间选点问题 这也是贪心算法的经典问题,一般情况为:有n个闭区间[ai,bj],取尽量少的点,使得每个区间内都至少有一个点. 分析 如果区间i内已经有一个点被取到,则称此区间已经被满足. ...
- 信息学奥赛第十节 —— 贪心算法(渡河问题POJ 1700 Crossing River + 拦截导弹的系统数量求解)
复习概念 贪心算法又叫贪婪算法,是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说,贪心算法不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解. 无后效性:贪心算法不是对所有问题都 ...
- 贪心算法—圣诞老人的礼物(POJ 4110)
贪心算法--物品可拆分情况求背包最大价值问题 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿 ...
- 【贪心算法】poj 2431: Expedition(最优加油方法)
题目描述(传送门) Description A group of cows grabbed a truck and ventured on an expedition deep into the ju ...
- POJ 3618 Best Cow Line(贪心算法)
Best Cow Line Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30454 Accepted: 8126 De ...
- POJ 3040 Allowance——经典贪心算法题目
题目链接 题目大意: 约翰要给他的牛贝西发工资,每天不得低于C元,约翰有n种面值的钱币,第i种的面值为v_i,数量有b_i.问这些钱最多给贝西发多少天的工资.注意,每种面值的金钱都是下一种的面值的倍数 ...
最新文章
- weblogic修改java重启_修改weblogic域的jdk
- openssl的实践应用
- 嫉恨别人不如审视自己
- Uniform Grid Quadtree kd树 Bounding Volume Hierarchy R树 搜索
- appimage文件怎么安装_bauh:在一个界面中管理 Snap、Flatpak 和 AppImage | Linux 中国...
- 诈尸了。不瞒您说,老坑从不填,天天开新坑
- 树莓派 python spi,树莓派测试SPI-基于设备操作ioctl
- HTML5 Canvas 画虚线组件
- python调用什么函数实现对文件内容的读取_python读取文本文件数据
- c语言中乱显示数字,同时显示不同的数字
- 书法是什么?书法的美从何说起?
- java 继承 封装 多态 详解
- 软工导论测试代码(归档):设备管理系统
- centos linux服务器优化之系统服务优化
- 【接口测试】axios测试接口
- 网站后台导入文本编辑器
- 系统流程图,数据流程图和Ipo图的介绍
- 解决手机端微信公众号内input输入框获取焦点后,底部导航栏显示在输入法软键盘上面的问题
- java 字符串 数组 索引_如何在Java中找到数组中元素的索引?
- 黑马程序员--java基础--异常(二)