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

南昌制作手机网站sem竞价托管公司

南昌制作手机网站,sem竞价托管公司,网站后台改成只有一个管理员登陆,广州网站制作公司文章目录 C. Robin Hood in Town 首先就是得思考一个问题:如何快速找到有多少个数严格小于平均数的一半?答案是显而易见的,二分,所以我们需要进行升序排序考虑题目给出的特殊情况当n1或n2的时候,直接输出-1即可那么对于…

文章目录

C. Robin Hood in Town

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 首先就是得思考一个问题:如何快速找到有多少个数严格小于平均数的一半?答案是显而易见的,二分,所以我们需要进行升序排序
  • 考虑题目给出的特殊情况当n=1或n=2的时候,直接输出-1即可
  • 那么对于可以通过增加x来判断满足最小的x的问题,这里就转换为,如何快速增加x,然后逐一判断这个x所带来的影响?
    • 直接暴力的做法肯定是x从0开始,逐个+1显而易见,这样十分慢
    • 正确的做法是直接使用二分,这里就要考虑这个二分的范围了,最小肯定是0,那么最大是多少?假设n全部放在一个测试用例,那么考虑到最大的数是10**6,n的最大范围2*10**5,如果开始的全部的n都是1,那么我们得将一半的数全部变为最大也就是10**11

import bisect
# 二分+二分的问题
t = int(input())
for _ in range(t):n = int(input())a = list(map(int, input().split()))if n == 1 or n == 2:print(-1)continuea.sort()asum = sum(a)# aver = asum / n# index = bisect.bisect_left(a, aver/2)# if index > n // 2:#     print(0)#     continue# 接下来怎么办?# 增加数的问题,具有二分的性质# 考虑增加的数量为middef check(mid):a[-1] += midtmpsum = asum + midaver = tmpsum / nindex1 = bisect.bisect_left(a, aver/2)a[-1] -= midreturn index1 > n // 2l,r = 0,10**12res = float('inf')while l<=r:mid = (l+r)//2if check(mid):res = min(res,mid)r = mid - 1else:l = mid + 1print(res)
http://www.dtcms.com/wzjs/472626.html

相关文章:

  • 门户网站建站多少钱幽默软文经典案例300
  • 用wordpress搭建个人独立博客ppt网页seo
  • 常见网站开发的语言自己如何制作网页
  • 更换网站首页模板怎么做太原网站制作优化seo
  • 网站类型分类有哪些佛山seo代理计费
  • 做网站需要会写代码吗网站seo推广排名
  • 做暧视频网站大全西安网站推广助理
  • 建网站是不是免费的网络营销岗位技能
  • 彩票网站代理怎么做seo综合查询站长工具关键词
  • 常见的网站结构有最近热搜新闻事件
  • 服务质量好的网站设计制作外贸营销网站怎么建站
  • 产品展示网站模板下载营销推广的特点是
  • 织梦网站多少钱网络推广页面
  • 免费学校网站模板打开免费百度啊
  • wordpress开通支付宝微信宝鸡seo外包公司
  • 更改网站图标自己做一个网站需要什么
  • 湖北在线网站建设免费域名注册
  • 家庭宽带 用443端口做网站优化大师客服
  • 万年网站建设互联网全网营销
  • 建网站需要买什么每天新闻早知道
  • 做网站运营的要求裂变营销
  • 韶关做网站需要多少钱杭州seo公司哪家好
  • 成都h5模板建站网页生成app
  • 注重网站建设 把好宣传思想关口微信推广平台收费标准
  • 用axure做网站自适应原型网络推广运营团队
  • 山东省建设厅网站地址长沙推广公司
  • 贵州做网站的电商网站项目
  • 黑龙江做网站公司成都新闻今日最新消息
  • 苏州网站设计选哪家经典软文广告
  • 做网站需要写代码吗360推广怎么收费