P8872 [传智杯 #5 初赛] D-莲子的物理热力学
题目链接:P8872 [传智杯 #5 初赛] D-莲子的物理热力学 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
参考了题解,自己在这再写一遍
假设数组有序且经过m次操作后的数组最小值为l,最大值为r,u代表所有严格小于l的值的个数,v代表所有严格大于r的个数,原数组经过m次操作的过程为:1.u<v,将u个数全部变为最大值,此时最小值为l,再将u+l个数全部变为最小值l 2.u>v,将v个数全部变为最小值,此时最大值为r,再将u+v个数全部变为最大值r 3.u=v ,可代入前两种的任一一种 ,将其归为 u+v+min(u,v) 且u+v+min(u,v) = m
令第一个值为l的下标为i(数组下标从0开始),则 j 的取值一共有两种可能:(1) u<v , j = m - 2*u (2) u>v, j = (m - u) // 2 (1),(2)两种情况,哪个更大,j 取哪个
注意: 1.m可能大于n-1(下标从0开始,当 i = n - 1 ,代表有n-1个数需要改变),因此在m,n中需要比较取最小值 2.判断循环退出条件时,i为最小值l的下标,并不是统计小于l的个数u,因此退出条件应为 i <= min(n-1,m) 3. j = m - 2*u 的下标可能为负值,需要排除
Python代码如下:
n,m = map(int,input().split())
A = list(map(int,input().strip().split()))
A.sort()
Min = min(n-1,m)
Max = A[-1] - A[0]
i = 0
while i <= Min:
j = (Min - i)//2
k = Min - 2 * i
if j > k:
if A[n-j-1] - A[i] < Max:
Max = A[n-1-j] - A[i]
elif k>= 0 and A[n-1-k] - A[i] < Max:
Max = A[n-1-k] - A[i]
i += 1
print(Max)
P8872 [传智杯 #5 初赛] D-莲子的物理热力学的更多相关文章
- P8844 [传智杯 #4 初赛] 小卡与落叶
简要题意 给出一个 \(n\) 个节点的以 \(1\) 为根的树,每一个节点 \(i\) 带权 \(w_i\),初始时所有节点的权均为 \(0\).有 \(m\) 个操作,支持以下操作: 1 x,对于 ...
- 第三届“传智杯”全国大学生IT技能大赛(初赛A组)题解
留念 C - 志愿者 排序..按照题目规则说的排就可以.wa了两发我太菜了qwq #include<bits/stdc++.h> using namespace std; const in ...
- 第四届“传智杯”全国大学生IT技能大赛题解
目录 A B C D E F G 今年题目难度普遍偏低.只有 D,F 还好. A 按题目给的公式计算即可.注意应在最后的答案中去掉小数部分. B 按照题意模拟即可.注意答案要与 \(0\) 取 \(\ ...
- 成都传智播客java就业班激情洋溢的青春篮球赛
为了缓解学员们的学习压力,也为了培养学员们的团队协作精神,5月28日下午,在班主任倪老师和王老师联手带领下,我们1406280ls" style="color:rgb(51,102 ...
- 传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)
一般情况下,我们在向数据库中插入数据时用Insert语句,但是当数据量很大的时候,这种情况就比较缓慢了,这个时候就需要SqlBulkCopy这个类. SqlBulkCopy本身常用的函数有这么几个 D ...
- 传智播客--高级控件--showdialog关闭(小白内容)
以往我在WPF里,用ShowDialog展示出一个页面,一般都是用Close()进行关闭. 今天看传智播客的视频时,了解到还能直接给DialogResult一个TRUE或者false的属性,使页面关闭 ...
- 传智播客DotNet面试题
技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...
- 传智博客.NET培训第13季 Ajax教程(共十三季) 学习资源
http://wangpengnimei.ctfile.com/u/1235801/47146 传智博客.NET培训第13季 Ajax教程(十三季).rar 19
- 大前端时代已经到来!传智播客2015之WEB前端视频教程(全套教程共15G)
大前端时代已经到来!传智播客2015之WEB前端视频教程(全套教程共15G)大前端时代已经到来!如今,前端开发工程师的职责,不是只有切图.制作网页这么简单哦! G:\传智播客2015-WEB前端视频教 ...
- 广州传智博客黑马训练营.Net15期
广州传智博客黑马训练营.Net15期 7 张扬波 MVC大项目 6 张扬波 MVC 3 胡凌浩 HTML&JS 2 基础加强+三层 5 张扬波 企业站点(asp.net)&EF 4 江 ...
随机推荐
- winfrom快捷键
1.当活动窗体的快捷键 1 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 2 { 3 KeyEventArg ...
- 如何将一个h5ad文件内部添加一个csv文件作为属性obsm
问题展开 学习生物信息的时候发现,需要将一个M * N的csv文件作为anndata文件的.X部分,一个M * 2的csv文件作为anndata文件的空间位置信息标识. 首先先读M*N的文件 myda ...
- MSF后渗透常用命令
一.在meterpreter命令行下常用的操作 ps # 查看当前活跃进程 migrate pid # 将Meterpreter会话移植到进程数位pid的进程中 execute -H -i -f cm ...
- 数据类型之字符串(string)(三)
其他操作 1.len():求序列长度,返回数字 a = 'my name is wang'len(a) 返回 15 空格也占一个位置. 2.+:连接2个字符串 >>> b = 'wh ...
- 记录一次Python环境安装出现的问题(已安装java)
之前是在其他电脑上安装python环境,没有问题. 换了一台电脑开始安装(注:已配置java环境) 安装包准备好 ( 这里使用的是python 3.6.5(64位) ,下载地址选择官网) 教程百度都有 ...
- ubuntu18 电脑重启后登录后无法进入桌面
ubuntu18 电脑重启后登录后无法进入桌面 应该是ubuntu桌面管理器gdm3和nvidia驱动冲突导致的 解决办法: 首先卸载已有的nvidia驱动 注意:在下载完驱动后,此时电脑没有驱动文件 ...
- wget 和 curl的区别
原文 https://www.codenong.com/s1190000022301195/ https://geek-docs.com/linux/linux-ask-answer/differen ...
- allure+testng遇到的一些问题
java+testng+allure 听说allure报告,"很好看",决定引入. 首先看allure官网,需要在pom.xml中引入包 文档:https://docs.qamet ...
- Locust fasthttplocust客户端环境搭建
1.下载地址:https://github.com/locustio/locust2.python setup.py install3.在执行目录中将安装完成的locust文件夹替换至原本pip下的原 ...
- docker部署opengauss
下载二进制包到/opt/software/ wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/x86/openGauss-1. ...