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];}
}

3578. 最大中位数相关推荐

  1. Acwing第 1 场周赛【完结】

    说实话题目真的不难,但是自己真的垃圾, 第一题签到过了 第二题脑子只想贪心,过了8个点,后来发现贪心有点问题.又想到了用小根堆.结果TLE.最后发现是二分 第三题想到了求环,想到了用并查集.没有想到联 ...

  2. java十个整数相反顺序_编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578, 输出为 8753。...

    编写程序,对输入的一个整数,按相反顺序输出该数.例如,输入为 3578, 输出为 8753. package HomeWork08; import java.util.Scanner; public ...

  3. 剑指offer:面试题41. 数据流中的中位数

    题目:数据流中的中位数 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数 ...

  4. leetcode-295 数据流的中位数

    中位数是有序列表中间的数.如果列表长度是偶数,中位数则是中间两个数的平均值. 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操 ...

  5. C++的 STL堆 实现获取中位数

    前言 堆数据结构 使用的是优先级队列实现,创建堆的时候需要指定堆中元素的排列方式,即最大堆或者最小堆 最大堆即 堆顶元素为堆中最大的元素 最小堆即 堆顶元素为堆中最小堆元素 如下为一个最大堆 中位数: ...

  6. python dataframe 中位数_python下的Pandas中DataFrame基本操作(一),基本函数整理

    pandas作者Wes McKinney 在[PYTHON FOR DATA ANALYSIS]中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰 ...

  7. LeetCode实战:寻找两个有序数组的中位数

    题目英文 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...

  8. 一道简约而不简单的算法题——数据流的中位数 | 附动画解析

    作者 | 程序员小吴 转载自微信公众号(ID:CXYxiaowu) 题目来源于 LeetCode 上第 295 号问题:数据流的中位数.难度级别为 Hard,目前通过率为 33.5% . 题目描述 中 ...

  9. 2017年首份中美数据科学对比报告,Python受欢迎度排名第一,美国数据工作者年薪中位数高达11万美金

    最新消息,Kaggle最近对机器学习及数据科学领域进行了全行业深度调查,调查共收到超过 16,000 份回复,受访内容包括最受欢迎的编程语言是什么,不同国家数据科学家的平均年龄是什么,不同国家的平均年 ...

最新文章

  1. Linux时间子系统之(一):时间的基本概念【转】
  2. js Grid - 列表插件
  3. spring security源码分析之core包
  4. linux 管道和重定向
  5. 文献记录(part67)--基于决策树模型重用的分布变化流数据学习
  6. 通过Spring Integration和RabbitMQ获得高可用性的AMQP支持的消息通道
  7. mysql 14.12_MySQL必知必会12-14 汇总 分组 子查询
  8. linux shell期末测试,LINUX期末复习---SHELL编程
  9. 二维数组求最小值_求一列中满足条件的最大最小值
  10. kafka内置分区及自定义分区
  11. Java编程:按照指定的字段顺序,将 Bean 转换为 Json
  12. linux 下 ffmpeg 库怎么才可以调试
  13. linux上sftp工具使用
  14. 计算机自我鉴定范文7月,学员自我鉴定表7篇
  15. 继续学习-CSS3页面美化之静态美化
  16. 【HDU No. 1317】 游戏玩家
  17. win10锁定计算机后黑屏,win10锁定屏幕就黑屏怎么办
  18. 问答间了解ISO27701隐私信息管理体系
  19. 非迅雷会员免费看云点播方法,无需软件享官方云点播
  20. PDF怎么转换成Excel?用迅读PDF转换器,高效又精准

热门文章

  1. oracle索引使用例子,Oracle中利用函数索引处理数据倾斜案例
  2. 求生之路2浩方联机开始显示服务器,求生之路2怎么联机_求生之路2浩方联机教程_快吧单机游戏...
  3. mysql gui vim_vim(一): 小技巧
  4. mysql添加新的实例_MySQL中添加新用户权限的实例详解
  5. android 动态设置View的高度和宽度,ViewTreeObserver使用
  6. android 音量调节 seekbar,Android 使用SeekBar调节系统音量
  7. oracle10客户端tnsname,连接Oracle RAC 的tnsname.ora设置
  8. windows 2502 2503 错误解决
  9. pycharm使用笔记2-远程连接(转)
  10. 《java程序员修炼之道》pdf书籍