3578. 最大中位数

  1. 最大中位数
    给定一个由 n 个整数组成的数组 a,其中 n 为奇数。

你可以对其进行以下操作:

选择数组中的一个元素(例如 ai),将其增加 1(即,将其替换为 ai+1)。
你最多可以进行 k 次操作,并希望该数组的中位数能够尽可能大。

奇数长度的数组的中位数是数组以非降序排序后的中间元素。

例如,数组 [1,5,2,3,5] 的中位数为 3。

输入格式
第一行包含两个整数 n 和 k。

第二行包含 n 个整数 a1,a2,…,an。

输出格式。
输出一个整数,表示通过操作可能得到的最大中位数。

数据范围
对于 30% 的数据,1≤n≤5。
对于 100% 的数据,1≤n≤2×105,1≤k≤109,1≤ai≤109。

输入样例1:
3 2
1 3 5
输出样例1:
5
输入样例2:
5 5
1 2 1 1 1
输出样例2:
3
输入样例3:
7 7
4 1 2 4 3 4 4
输出样例3:
5

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{int n, k;int ch[200010];cin >> n >> k;if (n==1) //特判,因为我下面写的不是很好,没有囊括这个{cin>>ch[0];ch[0]+=k;cout<<ch[0];return 0;}for (int i = 0; i < n; i++){cin >> ch[i];}sort(ch, ch + n);int cou = n / 2;int i;for (i = cou; i < n; i++){if ((i - cou) * (ch[i] - ch[i - 1]) > k)break;else{k -= (i - cou) * (ch[i] - ch[i - 1]);ch[i - 1] = ch[i];}}i--;if (k > 0){if ((i - cou) * (ch[i] - ch[i - 1]) > k)//break的一种情况,没到底{while ((i - cou) <= k){k -= (i - cou);ch[i - 1]++;}cout<<ch[i-2];}else//第二种,中位数后面都一样了{while ((i - cou + 1) <= k){k -= (i - cou+1);ch[i]++;}cout<<ch[i];}}else {cout<<ch[i-1];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法

问题如下&#xff1a; 代码如下&#xff1a; package TestNG1; import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.support.FindBy;import org.openqa.selenium.support.PageFactory;import org.testng.annotations.Tes…

3583. 整数分组

整数分组 #include<iostream> #include<algorithm> using namespace std; int main() {int f[5010][5010];int w[5010];int n,m;cin>>n>>m;for (int i1;i<n;i) cin>>w[i];sort(w1,wn1);for (int i1,j1;i<n;i){while (w[i]-w[j]>5) j;f…

《JavaWeb从入门到改行》注册时向指定邮箱发送邮件激活

javaMail API javaMail是SUN公司提供的针对邮件的API 。 两个jar包 mail.jar 和 activation.jar java mail中主要类&#xff1a;javax.mail.Session、javax.mail.internet.MimeMessage、javax.mail.Transport。 Session 表示会话&#xff0c;即客户端与邮件服务器之…

9. 分组背包问题

分组背包问题 #include <iostream> #include <algorithm> using namespace std; const int maxn 1000; int w[maxn], v[maxn], f[maxn]; int main() {int n, V;cin >> n >> V;for (int i 0; i < n; i){int m;cin >> m;for (int j 0; j &l…

HTTP之报文

HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端&#xff08;客户端&#xff09;的 HTTP 报文叫做请求报文&#xff0c;响应端&#xff08;服务器端&#xff09;的叫做响应报文。HTTP 报文本身是由多行&#xff08;用 CRLF 作换行符&#xff09;数据构成的字符串文…

小程序添加本地图片

写背景图片的时候用了本地的图片&#xff0c;报错说是不能直接使用本地图片。 只能使用<image></image> 或者网络图片以及base64 只好换背景图为<image src本地图片路径></image>转载于:https://www.cnblogs.com/zhangweihu/p/7490233.html

896. 最长上升子序列 II

最长上升子序列 II #include<iostream> using namespace std; int main() {int n;int w[100001],v[100001];cin>>n;for (int i0;i<n;i) cin>>w[i];int len 0;v[0] -2e9;for (int i0;i<n;i){int l 0,r len;while (l<r){int mid lr1>>1;i…

python 内置函数

一 print( ) flush的应用——模拟进度条 import time for i in range(1,101):time.sleep(0.1)print(\r{}%:{}.format(i,**i),end,flushTrue) #\r &#xff08;return&#xff09; 表示回车 \n &#xff08;new line&#xff09;表示换行&#xff0c;实际上是回车换…

275. 传纸条

传纸条 DP 三维数组。 #include <iostream> #include <cstring> using namespace std; const int maxn 100; int f[maxn][maxn][maxn];//第一维是步数&#xff0c;第二维是x1&#xff0c;第三维是x2。 int w[maxn][maxn];//y可以用x表示 int main() {int n, m;ci…

java使用token防止用户重复登录以及验证用户登录

登录成功后&#xff0c;使用用户id构造生成一个token并保存到redis中&#xff0c;同时也保存用户id到session中 生成token的代码如下&#xff1a; Overridepublic String createToken(String phone,String appId) throws Exception {long loginTime DateUtil.getNowTimeStampT…

866. 试除法判定质数

试除法判定质数 #include<iostream> #include<cmath> using namespace std; bool cmp(int x) {if (x1) return false;for (int i2;i<sqrt(x);i){if (x%i0) return false;}return true; } int main() {int n,num;cin>>n;while (n--){cin>>num;bool …

python基础练习

1.简单输入输出交互。 oldinput(How old are you?\n) print(I am %s%old) 2.用户输入两个数字&#xff0c;计算并输出两个数字之和&#xff0c;尝试只用一行代码实现这个功能。 minput(输入第一个数字&#xff1a;) ninput(输入第二个数字&#xff1a;)sumfloat(m)float(n)pr…

867. 分解质因数

分解质因数 #include <iostream> #include <set> #include <map> #include <cmath> using namespace std; int main() {int n;cin >> n;for (int i 0; i < n; i){int num;map<int, int> mp;set<int> cun;cin >> num;for …

.Net AppDomain详解(一)

AppDomain是CLR的运行单元&#xff0c;它可以加载Assembly、创建对象以及执行程序。AppDomain是CLR实现代码隔离的基本机制。每一个AppDomain可以单独运行、停止&#xff1b;每个AppDomain有自己默认的异常处理&#xff1b;一个AppDomain的运行失败不会影响到其他的AppDomain。…

902. 最短编辑距离

最短编辑距离 #include <iostream> #include <algorithm> using namespace std; const int N 1001; int f[N][N]; int n, m; char w1[N], w2[N]; int main() {cin >> n >> w1 1;cin >> m >> w2 1;for (int i 0; i < m; i)f[0][i] …

Discuz!论坛实现帖子回复可见内容功能

自从Discuz&#xff01;升级到3.0以上的时候很多功能都被改版了&#xff0c;已不是2年前的设计&#xff0c;如果不是Discuz&#xff01;老用户还真不知道怎么玩它了。 博主以前经常逛论坛&#xff0c;但从来没有自己去做过一个论坛&#xff0c;相关的开源程序代码也不是怎么精通…

dropify,不错的图片上传预览插件

引言 传统的图片上传&#xff0c;很丑。点击选择之后&#xff0c;还无法预览。 有一种方案是传到服务器&#xff0c;然后返回地址&#xff0c;然后显示&#xff0c;比较麻烦。 用这个dropify&#xff0c;就可以解决之歌问题。 看效果 用法 1.引入文件,需要jquery支持。 <lin…

7-4 统计工龄 (20 分)(C语言实现)

7-4 统计工龄 (20 分) 给定公司N名员工的工龄&#xff0c;要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数N&#xff08;≤10 ​5 ​​ &#xff09;&#xff0c;即员工总人数&#xff1b;随后给出N个整数&#xff0c;即每个员工的工龄&#xff0c;范…

【知了堂学习笔记】MySQL数据库常用的SQL语句整理

一&#xff0c;常用、简单的SQL操作语句 1.数据库操作&#xff1a; 1&#xff09;创建数据库&#xff1a; create database database_name&#xff1b; 创建并设置字符编码 create database database_name character set utf8&#xff1b; 2&#xff09;删除数据库&#xff1a…

7-1 模拟EXCEL排序 (25 分)

7-1 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数N(≤10 ​5 ​​ ) 和C&#xff0c;其中N是纪录的条数&#xff0c;C是指定排序的列号。之后有 N行&#xff0c;每行包含一条学生纪录。每条…