【hdoj_2570】迷障
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2570
思路:贪心法.要求在浓度不超标的情况下,解药的最大体积.由于体积相同,可以先对浓度排序,然后从浓度小的药水开始配制,直到超标的前一次,就可以求出最大体积和对应的不超标的最大浓度.
注意:根据题目要求,每种药液,要用就得全用,要么不用,即【不能分割】.
C++代码如下:
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;/*
*由于所有的药水体积相同,所以浓度就与体积无关了,例如两个浓度分别为c1和c2的药水
*等体积混合,所得药液的浓度就是二者均值,三个浓度不同的药水等体积混合,浓度就是三者均值.
*所以,只有在最后计算解药的最大体积的时候需要用到这个输入的体积V的值.
*/int main(){ int C; cin >> C;//测试组数 while(C--) {
int n,V,W;//配药的种类n,每种配药的的体积V,解药允许的最大浓度W
cin >> n >> V >> W; int *p = new int[n];
for(int i=0;i<n;i++) cin >> p[i];//输入每种配药的浓度
sort(p,p+n);//按照浓度从小到大排序 double sum = 0;//记录了"浓度"(浓度*100的值*目前所选择的药液种类数)
int k;//k的最终值,记录了最终所选择了几种药液 for(k=0;k<n;k++)
{ if(sum+p[k]<=(k+1)*W)//假设把第k中药液用上,如果"浓度"不超标
sum += p[k];//那就把第k中药液用上 else//如果超标了,那如果用上后面浓度更大的药液更超标
break;//所以退出
} //k值记录了用了几种药液,而每种药液的体积相同
if(k==0) cout << "0 0.00" << endl;
else//输出的第一个量为最终解药的体积,是个整数;第二个量为浓度(真正的浓度)
cout << k*V << " " << setprecision(2) << fixed << sum / (k*100) << endl; } return 0;}上述代码直接提交有错误提示(代码长度不符合要求),删去所有注释提交通过.
小结:
1.setprecision用于控制输出几位小数,它加载了#include<iomanip>头文件.它的用法如下:
#include<iostream>
#include<iomanip>
using namespace std; int main()
{
cout << 1.2345 << endl;
cout << setprecision(2) << fixed << 1.2345 << endl;//对后面的double类型数据有用
cout << 1.2345 << endl;//同样是double类型数据
cout << 12345 << endl;//但是,对整型数据不起作用 return 0;
}运行结果如下图:
2.题目的三个测试数据的药水体积均为V=100,可以改为其他数据进行测试,以免和【百分之xxx】中的100混淆.
【hdoj_2570】迷障的更多相关文章
- hdu_2570 迷障 贪心
迷瘴 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- 初期测评 E 迷障
https://vjudge.net/contest/240302#problem/E 通过悬崖的yifenfei,又面临着幽谷的考验—— 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满了骷髅.由于此处 ...
- 【Origin】 画道
-夏之时,晚归途中,观云,感雨,识迷障,题以记之. 原道是东边日出西边雨, 却原来乌云蔽日雨不息; 只不过光芒也破云边洒, 可还是满地泥泞水花起. --作于二零一六年七月十一日
- 【JavsScript】转载---如何成为优秀的前端
题记 做好前端 关于离职 如何成为优秀的前端 书籍推荐 博客推荐 源码阅读 去面试 14年计划 招聘信息 题记 四月前,低迷.失志踌躇不前形容自己再好不过,中途来了一次彻底的醒悟,于是我发现自己变得勤 ...
- width:100vh有感而发
在看一个网页的代码是看到 width:100vh 纳尼...这这我怎么没有见过,这是个什么属性,随之有看到 min-height:calc(100vh + 51px);这尼玛又是怎么用的.... 感 ...
- 十三篇系列:king转折点,wooga瓶颈,supercell营收结构
转自:http://gamerboom.com/archives/95125 十三篇系列:king的历史转折点,wooga的瓶颈,supercell的营收结构 第一篇 这句话In other word ...
- LeakCanary 原理浅析
前言 提到Java语言的特点,无论是教科书还是程序员一般都会罗列出面向对象.可移植性及安全等特点.但如果你是一位刚从C/C++转到Java的程序员,对Java语言的特性除了面向对象之外,最外直接的应当 ...
- 混乱中的ICO平台,会不会是下一个P2P的重灾区?
当众多巨头和创业者还在为共享打车.共享单车.VR.IP化.互联网金融沉迷时,一种全新的"众筹"正在造就一个又一个暴富神话.其名为ICO,即首次代币众筹,一般指区块链初创项目在众筹平 ...
- Java中文字符处理的四大迷题
虽然计算机对英文字符的支持非常不错,我们也恨不得写的程序只会处理英文的数据,但是昨为中国人,无可避免地要处理一些中文字符.当很简单的一件事情,遇到了中文,一切就不同了!本文就会讲述实际生产环境中遇到的 ...
随机推荐
- UIColor延伸:判断两个颜色是否相等
不管UIColor使用CIColor,CGColor还是其他方式初始化的,其CGColor属性都是可用的.CoreGraphics中提供一个函数,用于判断两个CGColor是否相等,因此我们可以通过这 ...
- bzoj 1123 [POI2008]BLO Tarjan求割点
[POI2008]BLO Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1540 Solved: 711[Submit][Status][Discu ...
- ACM1598并查集方法
find the most comfortable road Problem Description XX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Struc ...
- 单例 ------ JAVA实现
单例:只能实例化一个对象,使用场景比如打印机. 最推荐的是采用饿汉式:双重校验锁用到了大量的语法,不能保证这些语法在所用场合一定没问题,所以不是很推荐:总之简单的才是最好的,就饿汉式!!! C++ 创 ...
- 爬虫服务集群处理nginx返回504
最近在对爬虫服务做分布式服务的时候总是遇到服务器返回504,搞了两天才发现原来是nginx中有对超时的设置参数,自己都是用默认的,然而客户端的等待时间超过了nginx默认的超时设置 修改 keepal ...
- C语言数组与指针总结
寒假要开始猛刷<剑指offer>,先回顾一下C语言基础做个热身. 指针 相信大家对下面的代码不陌生: ; int *p; p=&i; 这是最简单的指针应用,也是最基本的用法.再来熟 ...
- LightOJ 1135 - Count the Multiples of 3 线段树
http://www.lightoj.com/volume_showproblem.php?problem=1135 题意:给定两个操作,一个对区间所有元素加1,一个询问区间能被3整除的数有多少个. ...
- Proxmap Sort
这个排序是桶排序和基数排序的改进,理解了前两者,这个排序很容易理解 先回忆下桶排序是怎么回事,它与桶的区别在于入桶规则,桶排序里是1入1号桶,2入2号桶 这个排序把数字分区了,然后给出一个所谓的键,例 ...
- leaflet一个前端gis框架,比openlayer更简单
leaflet一个前端gis框架,比openlayer更简单 作者github:https://github.com/mourner?tab=overview&from=2009-12-01& ...
- 【Codeforces441E】Valera and Number [DP]
Valera and Number Time Limit: 20 Sec Memory Limit: 512 MB Description Input Output Sample Input 5 3 ...