【题目描述】

    小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同,有的能使用5个小时,有的可能就只能使用3个小时。现在已知电池的数量和电池能够使用的时间,请你找一种方案使得使用时间尽可能的长。

【题目链接】

    http://noi.openjudge.cn/ch0406/2469/

【算法】

    其实一开始想的也没错:所有电池按使用时间之和分成尽可能接近的两组,若其中一组只有一个数,则最长时间为另一组使用时间之和,若两组均超过一个,则说明一定能全用完。事实上,两组均超过一个换句话说就是,所有电池中能用时间最大的那个小于总时间的一半,不然就会自成一组。。。所以这题目可以贪心的考虑最大时长电池,若大于其它所有电池之和,则为其余电池之和,反之为总时长一半。

【代码】

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int n,sum,maxn,i,a;
 4 int main()
 5 {
 6     while(scanf("%d",&n)!=EOF) {
 7         sum=maxn=0;
 8         for(i=1;i<=n;i++) scanf("%d",&a),sum+=a,maxn=max(maxn,a);
 9         if(maxn>sum-maxn) printf("%.1f\n",(double)sum-maxn);
10         else printf("%.1f\n",sum/2.0);
11     }
12     return 0;
13 }

转载于:https://www.cnblogs.com/Willendless/p/9352309.html

电池寿命问题 (贪心)相关推荐

  1. 贪心题集(vjoj)

    首先总结一下贪心,算法贪心算法(重点就是一个贪字)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解,而每个局部最优解的总和就 ...

  2. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  3. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  4. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  5. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  6. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  7. 贪心:expedition 最优加油方法

    已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加 油站到终点的距离d与各个加油站可以加油的量l,起点位置至终点的距离L与起 始时刻油箱中汽油量P;假设使用1个单位的汽油即走1个 ...

  8. 贪心:Burst Balloons 最少次数完成射击气球

    已知在一个平面上有一定数量的气球,平面可以看作一个坐标系,在平面的x轴的不同位 置安排弓箭手向y轴方向射箭,弓箭可以向y轴走无穷远;给定气球的宽度 xstart ≤ x ≤ xend,问至少需要多少弓 ...

  9. 贪心:jump 游戏(获取最少跳跃的次数以及跳跃路径)

    一个数组存储了非负整型数据,数组中的第i个元素a[i],代表了可以从数组第i个 位置最多向前跳跃a[i]步;已知数组各元素的情况下,求是否可以从数组的第0个位置跳跃到数组的最后一个元素的位置,返回最少 ...

最新文章

  1. Python 开发者节省时间的 10 个小技巧
  2. linux下使用yum安装mysql
  3. Oracle常用知识
  4. Gis 热点技术分析
  5. java版b2b2c社交电商spring cloud分布式微服务(二) 服务消费者(rest+ribbon)
  6. siesta在Linux运行,siesta-3.0-b
  7. 年度影像旗舰vivo X70系列正式发布 售价3699元起
  8. python中打印输出date信息
  9. IBM Lotus Domino V8.5 服务器管理入门手册
  10. hive 不同用户 权限设置 出错处理
  11. 数据时代,嵌入式工程师必须知道的八大加密算法
  12. 天题系列:Substring with Concatenation of All Words
  13. SQL Server Join方式
  14. 基于鸿蒙js框架实现的wearable五子棋软件
  15. Redis 实战之多节点分布式锁【SpringBoot + RedLock】
  16. centos7 定时清理内存
  17. 九九乘法表居中c语言,excel图文教程:九九乘法表的制作方法,你会哪种?
  18. Android Studio 部分查找快捷键
  19. 【技术面试官如何提问】
  20. windows CMD批处理中的一些特殊连接符号

热门文章

  1. 新道格资讯 工会换届选举大会顺利召开
  2. 网络基础之动态路由协议(OSPF)
  3. 中科院京区博士生申请申根(德国)签证流程
  4. 创蓝闪验一键登录(Java实现)
  5. 抓取猫眼电影top100
  6. MQTT客户端(基于mosquitto库)上报温度到腾讯云
  7. 【指纹识别】指纹识别【含GUI Matlab源码 029期】
  8. Metaspace整体介绍
  9. Cornerstone的Merge方法
  10. python3函数参数(必选参数、默认参数、关键字参数、可变参数)