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的更多相关文章

  1. 贪心,POJ(2709)

    题目链接:http://poj.org/problem?id=2709 解题报告: #include <stdio.h> #include <algorithm> #inclu ...

  2. poj_2709 贪心算法

    poj 2709 painter 题目要求 给定涂料,每套涂料含有3-12种不同的颜色(开始时候给定选用的颜料套的颜色数目),且一套涂料中每种颜色均有50ml.且一套涂料中的任意三种不同的颜色各X m ...

  3. [SinGuLaRiTy] 贪心题目复习

    [SinGuLaRiTy-1024] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [POJ 2709] 颜料 (Painter) 题目描述 ...

  4. POJ推荐50题

    此文来自北京邮电大学ACM-ICPC集训队 此50题在本博客均有代码,可以在左侧的搜索框中搜索题号查看代码. 以下是原文: POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求, ...

  5. poj和hdu部分基础算法分类及难度排序

    最近想从头开始刷点基础些的题,正好有个网站有关于各大oj的题目分类(http://www.pythontip.com/acm/problemCategory),所以写了点脚本把hdu和poj的一些题目 ...

  6. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  7. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  8. POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22286 ...

  9. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

随机推荐

  1. CentOS7 安装 Mono

    官网参考:http://www.mono-project.com/docs/getting-started/install/linux/#centos-7-fedora-19-and-later-an ...

  2. sql-数据库的隔离级别

    read uncommited  (读未提交)      最低级别,可读取未提交事物的数据,这会导致脏读,比如:某时刻会话a修改了一个数据,但还未提交,此时会话b,读取了该数据,这是,会话a回滚了事物 ...

  3. MongoDB的安装及配置

    MongoDB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐. Windows (1). 登录Mongodb官网点击下载 (2). 将zi ...

  4. Ecshop /admin/get_password.php Password Recovery Secrect Code Which Can Predict Vulnerability

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Ecshop提供了密码找回功能,但是整个密码找回流程中存在一些设计上的安全隐患 . ...

  5. UVA 1398 Meteor

    传送门 Solution: 记一颗流星在视野内的时间段为(L, R), 为了使所有(L, R)都取整数,首先将坐标放大. 放大倍数可取为 LCM(1, 2, ..., 10)= 2520 接着计算:从 ...

  6. 一个cheat命令 == Linux命令小抄大全

    本文介绍一个Linux超级命令,有了这个命令,你就可以开开心心的使用linux上的各种命令了.当你要执行一个linux命令,在这个命令参数选项众多时,你一般怎么做?对,我们大多数人都会去求助man命令 ...

  7. P1067Warcraft III 守望者的烦恼(十大矩阵问题之七求递推式)

    https://vijos.org/p/1067 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫“闪烁”,这个技能可以把她 ...

  8. EasyUI queryParams属性 在请求远程数据同时给action方法传参

    http://www.cnblogs.com/iack/p/3530500.html?utm_source=tuicool EasyUI queryParams属性 在请求远程数据同时给action方 ...

  9. MyEclipse------PreparedStatement使用方法

    testPreparedStatement.jsp <%@ page language="java" import="java.util.*" pageE ...

  10. mysql-binlog日志恢复数据库

    binlog日志用于记录所有更新了数据或者已经潜在更新了数据的所有语句.语句以“事件”的形式保存,它描述数据更改.当我们因为某种原因导致数据库出现故障时,就可以利用binlog日志来挽回(前提是已经配 ...