当前位置: 首页 > news >正文

电池的寿命

思路:

首先,我们观察发现:由于每枚电池的使用时间不同,而我们又要减少浪费才能使所有电池加起来用得最久,不难发现:当n=2时,输出较小值。

第一步:将电池分为两组,使两组电池的总使用时长的差值尽可能小。
第二步:如果总时长更长的分组中有多于1个电池,那么取出这一组中的一些电池运行游戏机,消耗其中一些电池的电量,使得两组电池的使用时长相等。

代码解释

  1. 输入处理:借助while (scanf("%d", &n) != EOF)持续读取每组数据的电池数量n
  2. 电池数据读取:用数组a来存储每个电池的使用时长,同时在读取时计算总时长sum,并找出使用时长最长的电池maxn
  3. 判断最长使用时间
    • 如果除最长电池外其他电池总时长小于最长电池时长,那么最长使用时间就是其他电池的总时长。
    • 如果除最长电池外其他电池总时长大于等于最长电池时长,那么最长使用时间为所有电池总时长的一半。
  4. 输出结果:以保留一位小数的格式输出结果。

其实对于每一组数据只要判断最大的那个数是不是比其余的数的和都要大,如果成立的话那当然就是剩下的所有电池与最大的电池车轮战,最大为n-1个数的和,如果不成立的话那么最大就是n个数的和的一半,也就是说电池是一定可以全部用完的。

代码:

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int main(){int n;while(scanf("%d",&n)!=EOF) {int maxn=-1,sum=0;for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i]; if(maxn<a[i]) maxn=a[i]; }if((sum-maxn)<maxn){printf("%.1f\n",(sum-maxn)*1.0);}else{printf("%.1f\n",(sum-maxn-maxn)*1.0/2+maxn);}}return 0;
} 

http://www.xdnf.cn/news/170695.html

相关文章:

  • 参数规模:衡量大语言模型体量的标尺
  • 【Java面试笔记:进阶】23.请介绍类加载过程,什么是双亲委派模型?
  • NEPCON China 2025 | 具身智能时代来临,灵途科技助力人形机器人“感知升级”
  • Spring MVC深度解析:从原理到实战
  • 进程与线程-----C语言经典题目(8)
  • Net版本Spire.doc 最新版去水印
  • OpenCV进阶操作:图像金字塔
  • Django(快速上手版)
  • IDEA中使用Git
  • 物联网相关
  • 【仿Mudou库one thread per loop式并发服务器实现】服务器边缘测试+性能测试
  • 强制缓存vs协商缓存
  • pycharm无法创建venv虚拟环境
  • Web安全:威胁解析与综合防护体系构建
  • 快速排序及其在Unity游戏开发中的应用
  • Node.js API 安全的主要策略:最佳实践
  • 面试记录1-春招补录0427
  • 【Hive入门】Hive基础操作与SQL语法:DML操作全面解析
  • FastAPI + Redis Pub/Sub + WebSocket 组合解决方案的详细介绍
  • Reverse-WP记录6
  • Taro on Harmony :助力业务高效开发纯血鸿蒙应用
  • 云计算市场的重新分类研究
  • 华为 MRAG:多模态检索增强生成技术论文阅读
  • 用Node.js施展文档比对魔法:轻松实现Word文档差异比较小工具,实现Word差异高亮标注(附完整实战代码)
  • 如何删除Google Chrome中的所有历史记录【一键清除】
  • 关于Android Studio的Gradle各项配置2
  • 神经网络(自己记录)
  • 《大型网站技术架构-核心原理与案例分析》笔记
  • 展销编辑器在未来的发展前景​
  • 硬盘损坏数据恢复后对python程序的影响