您的位置:首页 > 健康 > 养生 > 巨量引擎广告投放平台官网_游戏优化是什么意思_关闭站长工具seo综合查询_大数据智能营销系统

巨量引擎广告投放平台官网_游戏优化是什么意思_关闭站长工具seo综合查询_大数据智能营销系统

2025/4/28 5:24:00 来源:https://blog.csdn.net/xingdjk888/article/details/147543761  浏览:    关键词:巨量引擎广告投放平台官网_游戏优化是什么意思_关闭站长工具seo综合查询_大数据智能营销系统
巨量引擎广告投放平台官网_游戏优化是什么意思_关闭站长工具seo综合查询_大数据智能营销系统

思路:

首先,我们观察发现:由于每枚电池的使用时间不同,而我们又要减少浪费才能使所有电池加起来用得最久,不难发现:当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;
} 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com