Codeforces Round #577 (Div. 2) C. Maximum Median
2024-10-20 15:49:24
题意:就是给一n(奇数)个元素数组,可以对它的元素执行k次+1操作,递增排序,求中位数最大是多少。
那我们在排完序之后,中位数前的元素可以不管它,只要对中位数后的操作就行,我们要判断和中位数相等的元素有几个,再用k减去它,循环一下,当k小于0时没的减了,也就是数组元素不能再加了时跳出来。
附ac代码:
1 #include<cstdio>
2 #include<iostream>
3 #include<cstring>
4 #include<cmath>
5 #include<algorithm>
6 #define ma (int)2e5+1
7 using namespace std;
8 int main(){
9 int n,k,a[ma];
10 cin>>n>>k;
11 for(int i=1;i<=n;i++){
12 cin>>a[i];
13 }
14 if(n==1){
15 cout<<a[1]+k;
16 return 0;
17 }
18 sort(a+1,a+1+n);
19 int i,l=0,q=(n+1)/2;
20 for(i=a[q];k>=0;i++){
21 while(i==a[q+1])q++;
22 k-=q-(1+n)/2+1;
23 }
24 cout<<i-1;
25 return 0;
26 }
因为我这k=0时还会操作,但是其实不能操作了,所以i++后我输出又要减回去;如果循环内操作完k<0,那说明之前执行i++的操作无效,所以也是i减回去,最后都输出i-1.
最新文章
- 游戏编程技巧 - Subclass Sandbox
- Shelve Instance 操作详解 - 每天5分钟玩转 OpenStack(38)
- 基数排序 java 实现
- 【Swift学习】Swift编程之旅(三)
- Storm集群的安装配置
- 【原】iOS学习之Swift之语法1(精简版)
- NumberFormat usage
- 【转】Tomcat调优指南
- HDU2680 Choose the best route 最短路 分类: ACM 2015-03-18 23:30 37人阅读 评论(0) 收藏
- App.config提示错误“配置系统未能初始化”
- Codevs 1064 虫食算 2004年NOIP全国联赛提高组
- cocos2dx_moveby_n_moveto
- ajax vs oauth
- mysql myisam 锁表问题<;转>;
- Lowest Common Ancestor of a Binary Search Tree 解答
- Hibernate 查询:HQL查询(Hibernate Query Languge)
- Jquery实现表格的分页
- Android初级教程理论知识(第十章Fragment与动画)
- 学习mysql,记录下常用的命令行语句
- Java实现一个双向链表的倒置功能