一个游戏机由两节5号电池供电,电池的生产商不同,因而使用寿命也有所不同,有的能使用5个小时,有的可能就只能使用3个小时。显然如果他只有两个电池一个能用5小时一个能用3小时,那么他只能玩3个小时的游戏,有一个电池剩下的电量无法使用,但是如果他有更多的电池,就可以更加充分地利用它们,比如他有三个电池分别能用3、3、5小时,他可以先使用两节能用3个小时的电池,使用半个小时后再把其中一个换成能使用5个小时的电池,两个半小时后再把剩下的一节电池换成刚才换下的电池(那个电池还能用2.5个小时),这样总共就可以使用5.5个小时,没有一点浪费。 现在已知电池的数量和电池能够使用的时间,请你找一种方案使得使用时间尽可能的长。 输入 输入包含多组数据。每组数据包括两行,第一行是一个整数N (2 ≤ N ≤ 1000),表示电池的数目,接下来一行是N个正整数表示电池能使用的时间。 输出 对每组数据输出一行,表示电池能使用的时间,保留到小数点后1位。
样例输入
2
3 5
3
3 3 5
样例输出
3.0
5.5
我的思路:(类似递归)
最终的出口是n=2或n=3 n=2是返回较小的时间值,n=3时先让次小的与最大的一起用直到次小与最小相同
相同后又有两种情况if两个最小的和比最大的还小 返回两个小时间的和
else返回 (大的/2+小的)
先排序从小到大
然后让最小和最大一起用这样n就减少一个
递归…
直到n=3
但这种思路非常不容易实现 每一次递归都要进行排序 时间复杂度极高
后来通过大量例子发现问题可以简化可以总的分成三种情况
if n=2 返回较小时间
else if 时间最长的比剩余其他的时间都长,返回其他时间的总和
else 时间最长的比剩余的时间短或一样,返回所有电池一共能玩的时间除以2那么久


#include<iostream>
#include<iomanip>
using namespace std;
int n,a[1001],sum=0,i,j,m=0;
double ave;
int main()
{while(cin>>n){sum=0;for(i=1;i<=n;i++){cin>>a[i];if(a[i]>m)m=a[i];sum+=a[i];}if(n==2){if(a[1]<=a[2])ave=a[1];elseave=a[2];cout<<fixed<<setprecision(1)<<ave<<endl;}else if(sum-m<m){cout<<fixed<<setprecision(1)<<sum-m<<endl;}else{ave=sum*1.0/2;cout<<fixed<<setprecision(1)<<ave<<endl;}}return 0;
}

这个代码运行时正确的,但是提交总是WA,解决中…

AC题解

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{double n,a[10001],max=0,sum=0,summ=0;int i;while(cin>>n){for(i=1;i<=n;i++)cin>>a[i];for(i=1;i<=n;i++)if(a[i]>max)max=a[i];for(i=1;i<=n;i++){if(a[i]!=max)sum+=a[i];summ+=a[i];}if(sum<max)cout<<fixed<<setprecision(1)<<sum;elsecout<<fixed<<setprecision(1)<<summ/2;cout<<endl;max=sum=summ=0;}return 0;
}

电池的寿命(贪心算法)相关推荐

  1. 贪心算法题目 电池的寿命

    贪心算法 电池的寿命 题目: 小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电.为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同,有的能使 ...

  2. Bailian3468 电池的寿命【贪心】

    3468:电池的寿命 总时间限制: 1000ms 内存限制: 65536kB 描述 小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电.为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产 ...

  3. 基础算法 —— 贪心算法

    [概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...

  4. 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命

    [题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...

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

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

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

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

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

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

  8. 一份贪心算法区间调度问题解法攻略,拿走不谢

    作者 | labuladong 来源 | labuladong(ID:labuladong) [导读]什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多 ...

  9. 漫画:五分钟学会贪心算法!

    假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...

  10. 下载插件(贪心算法)

    小扣打算给自己的 VS code 安装使用插件,初始状态下带宽每分钟可以完成 1 个插件的下载.假定每分钟选择以下两种策略之一: 使用当前带宽下载插件 将带宽加倍(下载插件数量随之加倍) 请返回小扣完 ...

最新文章

  1. 异常检测概念、异常检测的思路、孤立森林Isolation Forest、​​​​​​​局部异常因子LOF、OneClassSVM、EllipticEnvelop
  2. JS URL 编码 PHP 解码{%u5F00%u53D1}
  3. PHP之使用网络函数和协议函数
  4. IMDB是否提供API? [关闭]
  5. python能做什么游戏ll-是Python的语法LL(1)吗?
  6. OSI 网络协议模型为什么是 7 层?
  7. vscode搜索文件_VS Code 新图标来临 —— 侧边栏、文件管理器、搜索、调试等区域的图标迎来全新设计...
  8. JAVA中线程同步的方法
  9. 字符与编码(编码转换)
  10. 太沉重了:中国获全球“人道主义摄影奖”的照片!组图
  11. 【Kafka】ERROR Error when sending message to topic topic_lcc with key: null, value: 4 bytes with error
  12. C语言实例解析精粹学习笔记——36(模拟社会关系)
  13. Android简明开发教程十六:Button 画刷示例
  14. Tomcat修改默认端口号
  15. 电商产品竞品分析报告(聚水潭良品铺子)
  16. win10显卡驱动怎么装_既然大家都说装了win10,就不用鲁大师监测显卡温度,为什么呢?...
  17. python学习笔记——类与对象、常用函数
  18. 奖金高达200万!武汉市便利店行业发展专项资金支持条件、材料及流程
  19. FPGA 名词解释(FPGA WORD EXPLANATION )
  20. 移动端测试=== 两个概念 内存泄漏 和 内存溢出 【转】

热门文章

  1. Python编程之路----day2
  2. 如何将客户转变为忠诚的追随者,提高网站转化率
  3. 【半监督医学图像分割 2021 CVPR】CVRL 论文翻译
  4. Synchronized与Lock的区别(表)
  5. arcgis for android(五)加载天地图
  6. html2canvas(html转图片/html海报生成)
  7. css如何设置全局字体,CSS-如何更改Bootstrap的全局默认字体大小?
  8. 2018下半年阿拉丁小程序白皮书发展8大预测 日活有望达到4亿
  9. C#毕业设计——基于C#+asp.net+sqlserver在线英语自学系统设计与实现(毕业论文+程序源码)——在线英语自学系统
  10. webpack-面试官提问系列