poj 2709
http://poj.org/problem?id=2709
题意:就是那个老师需要n瓶颜色的墨水,和1瓶颜色的灰色的墨水,但是灰色的墨水没得卖,只能由三种颜色相同的墨水混合而成,但是3瓶50ML的墨水也只能混合出1瓶50ML的墨水,这些墨水最多是有12瓶的,最少是3瓶,但不是这些墨水都是需要购买的,只需要购买这些老师所需要的颜色的墨水,每一瓶的墨水有50ML,老师所买的N瓶颜色不同的墨水为一套,问老师最少需要购买多少套的墨水。
#include <stdio.h>
#include <string.h>
#include <stdlib.h> int cmp(const void *a,const void *b)
{
return (*(int *)a)-(*(int *)b);
} int main()
{
int color[],nous[],gray,i,ans,n,mark,max1; //color 用来存每种颜色需要的量,nous也就是no user 每一套剩余使用的墨水的量
while(scanf("%d",&n),n!=)
{
memset(color,,sizeof(color));
for(i=,ans=;i<n;i++)
scanf("%d",&color[i]);
scanf("%d",&gray);
for(i=,max1=,mark=n;i<n;i++)
{
if(color[i]>max1) max1=color[i]; //找出需要最多量的拿一瓶墨水,并记录下来它的量,因为他的量就有可能是最少需要的墨水的套数 }
if(max1%==) ans=max1/; //如果最大的量可以整除50,那么刚好最多的就是它除以50的套数,否则有多余的都需要在多买一套
else ans=max1/+; /* for(i=;i<mark;i++)
if(color[i]==) n--;*/ //这个没什么意义,因为之前理解错了题意
for(i=;i<mark;i++) //有ans套的墨水,有多少是剩下来没用的,之后就可以用这些来混合出灰色的
nous[i]=ans*-color[i];
for(;;)
{
qsort(nous,mark,sizeof(nous[]),cmp); //对这些剩余墨水的量由小到大进行排序,并且每一次都是混合出1ml的墨水,为什么要这些,一组数据你就会懂,就是3 3 3 3 有可能是3 0 0 0或者
// 0 0 0 0 下面这种就是每次减1ml进行然后在重新进行排序,上面的就是直接减倒数第3个墨水瓶的数
if(nous[mark-]==&&gray>){
for(i=;i<mark;i++)
nous[i]=nous[i]+;
ans++;
}
nous[mark-]--;
nous[mark-]--;
gray--;
nous[mark-]--;
if(gray<=) break;
}
printf("%d\n",ans);
}
return ;
}
poj 2709的更多相关文章
- 贪心,POJ(2709)
题目链接:http://poj.org/problem?id=2709 解题报告: #include <stdio.h> #include <algorithm> #inclu ...
- poj_2709 贪心算法
poj 2709 painter 题目要求 给定涂料,每套涂料含有3-12种不同的颜色(开始时候给定选用的颜料套的颜色数目),且一套涂料中每种颜色均有50ml.且一套涂料中的任意三种不同的颜色各X m ...
- [SinGuLaRiTy] 贪心题目复习
[SinGuLaRiTy-1024] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [POJ 2709] 颜料 (Painter) 题目描述 ...
- POJ推荐50题
此文来自北京邮电大学ACM-ICPC集训队 此50题在本博客均有代码,可以在左侧的搜索框中搜索题号查看代码. 以下是原文: POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求, ...
- poj和hdu部分基础算法分类及难度排序
最近想从头开始刷点基础些的题,正好有个网站有关于各大oj的题目分类(http://www.pythontip.com/acm/problemCategory),所以写了点脚本把hdu和poj的一些题目 ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
随机推荐
- hdu2222 字典树
要注意二点 . 这组数据 1 6 she he he say shr her yasherhs出现重复的,也要算.所以这里答案为4: 这一组 1 6 she he he say shr her yas ...
- 重启猫(modem)的方法
重启猫(modem)的方法 家里上网还是古老的"猫+路由器"模式,换路由器后就要reset猫,其步骤为: 断开猫电源 用针头或笔尖按住reset小孔,持续30秒 针抵住小孔的同时连 ...
- python TypeError: 'str' object does not support item assignment”
想替换string里的空格,遍历替换提示如题错误,查询得知string类型不可更改 import string s = "2013/2/12" b = s.replace('/', ...
- hdu acmsteps 2.1.3 Cake
Cake Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- javascript中this的学习总结
在开发中,this多使用在function函数中,也正是由于调用function的对象的不同,才导致了this的指向不同.需要明白(1).function也是对象:(2).function执行时是在某 ...
- shell的执行顺序问题
&&,||,(),{},& 五个符号的运用 shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功.而&&和||就是用来判断前一个命令执行效果的. ...
- struts2基本配置
struts.xml 放在src目录下 <?xml version="1.0" encoding="UTF-8"?> <struts> ...
- 使用Adivisor配置增强处理
使用Adivisor配置增强处理 实现步骤: 1.通过MethodBeforeAdivice接口实现前置增强处理 public class ServiceBeforeAdvisor implement ...
- java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration解决方法
Autowiring of fields failed; nested exception is...........Error creating bean with name 'siteOperat ...
- CMS介绍
CMS介绍 CMS是Content Management System的缩写,意为“内容管理系统”,它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本. CMS的功能不仅限于处理文本 ...