首页 > 其他分享 >CF68B Energy exchange

CF68B Energy exchange

时间:2024-02-29 20:47:47浏览次数:25  
标签:exchange int Energy long 电量 maxn 100 CF68B 电池

题面

有 \(n\) 个电池,每个初始电量为 \(a_{i}\),现在需要通过能量传递让所有电池电量相等。能量传递的方法是:选择两个电池,一个失去 \(x\) 电量(\(x\) 可以不是整数),另一个得到 $ x-\dfrac{xk}{100}$ 点电量。也就是说,传递过程中会损失 \(k\%\) 的电量。

现给出 \(a_{i}\),求通过能量传递能获得的最大单个电量(所有电池电量要求相等)。

思路

很明显的二分,每次二分最终能获得的最大单个电量即可

注意到,例如最后要让每一个电池的电量都变味\(x\),那么对于每一个\(a_i\),就会有两种情况,一种是需要补充,一种是可以给别的补充

现在假设所有电量大于\(x\)电池可以给别的电池输送\(t\)的电量(不计损耗),那么最终算上损耗就是\(t\times \dfrac{100-k}{100}\)

最后看看能够补充的是否大于等于需要补充的

还有一点,为什么是大于等于而不是严格等于呢?即使我需要补充比需要补充的还要多,但是多出来的也可以通过不断地转移,最终变为一个极小值直到忽略不计,所以是大于等于,而不是严格等于

代码

#include<bits/stdc++.h>
using namespace std;
const int Maxn=1e5+10;
long long a[Maxn];
long long n,k,maxn;
bool check(long long x)
{
	long long cnt=0,sum=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]>x) cnt+=a[i]-x;
		else sum+=x-a[i];
	}
	return (cnt*k/100)>=sum;
}
int main()
{
	cin>>n>>k;
	k=100-k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		a[i]*=1e7;
		maxn=max(maxn,a[i]);
	}
	long long l,r,mid,ans;
	l=0,r=maxn;
	while(l<=r)
	{
		mid=(l+r)>>1;
//		cout<<l<<" "<<r<<" "<<mid<<endl;
		if(check(mid)) l=mid+1,ans=mid;
		else r=mid-1;
	}
	printf("%.8f",(double)ans/1e7);
 } 

标签:exchange,int,Energy,long,电量,maxn,100,CF68B,电池
From: https://www.cnblogs.com/lyk2010/p/18045404

相关文章

  • MogDB 学习笔记之 --exchange partition
    概念描述MogDB提供了从分区交换的功能,如单表转化到一个分区中基本语法:ALTERTABLE...EXCHANGEPARTITION数据库版本测试验证1、环境准备miao=>selectversion();version--------------------------------------------------------------------------------------------......
  • python发送、接收exchange邮件
    导包importdatetimefrompathlibimportPathimportpytzfromexchangelibimportConfiguration,Account,DELEGATE,Q,Credentials,HTMLBody,Message,FileAttachmentfromexchangelib.protocolimportCachingProtocol连接邮箱server='example.com'do......
  • Exchange学习第7天:深化应用与展望未来
    经过一周的深入学习,我对Exchange有了更为全面和深入的了解。这一周,我主要聚焦于Exchange在日常办公环境中的应用,以及如何根据企业需求进行定制化配置。在应用层面,我深入研究了Exchange与Outlook的集成。如何确保用户在使用Outlook时能获得最佳的邮件体验,以及如何解决常见的兼容性问......
  • Exchange学习第五天:高级配置与安全性
    在Exchange学习的第五天,我深入了解了Exchange的高级配置和安全性设置。早上,我学习了如何配置Exchange的连接设置。这包括配置SMTP、POP3和IMAP4服务,以及如何配置连接的安全性。我明白了如何设置SSL证书来加密客户端与服务器的通信,以确保邮件传输的安全。午后,我重点学习了Exchange的......
  • Exchange学习第二天:配置与基础管理
    在Exchange学习的第二天,我深入了解了Exchange的配置和管理。早上,我首先学习了Exchange的存储配置。存储配置是Exchange的关键部分,决定了邮件的存储和检索方式。我了解了不同类型的存储组和邮箱数据库,并学习了如何创建和管理它们。通过这些知识,我明白了如何配置Exchange以适应不同的......
  • Exchange学习第一天:初识与安装
    Exchange,作为微软的企业级邮件服务器软件,在企业中扮演着至关重要的角色。今天,我开始了Exchange的学习之旅。一早,我首先了解了Exchange的基本概念和功能。Exchange不仅仅是一个邮件服务器,它还提供了联系人、日历、任务等协作工具,帮助企业提高工作效率。随后,我熟悉了Exchange的安装环......
  • 春秋云境Exchange WP
    靶标介绍Exchange是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个Flag,分布于不同的靶机。*注意:该靶......
  • Reinforcement Learning in Energy Management: Optimizing Grid Operations and Redu
    1.背景介绍Reinforcementlearning(RL)isasubfieldofmachinelearningthatfocusesonhowagentsoughttotakeactionsinanenvironmentinordertomaximizesomenotionofcumulativereward.Inrecentyears,reinforcementlearninghasbeenappliedtoawid......
  • Exchange接入ADFS-CAS,登录后提示报错“WrongAudienceUriOrBadSigningCert”
    cas登录密码验证成功后,跳转到Exchangeowa的时候出现如下报错:https://mail.test19.com/owa/auth/errorfe.aspx?msg=WrongAudienceUriOrBadSigningCert处理方法:1.登录ex,Get-OrganizationConfig|fladfs*,检查AdfsAudienceUris是否有未添加的url,检查AdfsSignCertificateThumbprints......
  • Exchange迁移无缝过渡云端
    随着企业日益向云端过渡,管理员们正面临将本地Exchange环境迁移到ExchangeOnline的挑战。这一复杂的迁移过程包括保持数据完整性、解决安全问题、最小化停机时间以及确保用户体验无缝过渡等多个方面。在迁移过程中,管理员们面临着一系列独特的挑战,特别是在需要大规模迁移邮箱......