1.题意:给定N个数字,和一个值K,要求输出一组数据中第K大的数字,其中30%的测试点满足:n <= 100;60%的测试点满足:n <= 1000;100%的测试点满足:n <= 100000;1 <= k <= n, 每个同学的分数在[0,32767]之间;

2.分析:最朴素的想法是对数据排序,然后直接得出结果,不过一般的sort()函数复杂度为O(nlogn),不是很快。这里可以注意到,输入数据的范围并不大,在1e4这个数量级,这样我们开一个4e4的数组,读入数据时,用数组[i]表示i这个数是否在数据中以及出现了几次,这样能以O(n)的复杂度得到结果,代码如下(题设数据貌似用排序也能过)

 # include <iostream>
# include <cstdio>
# include <cstring>
using namespace std;
const int MAXN=4e4;
int num[MAXN];
int n,k;
void Init()
{
for(int i=;i<MAXN;i++)
num[i]=-;
for(int i=;i<n;i++)
{
int temp;
scanf("%d",&temp);
if(num[temp]>=)
num[temp]++;
else num[temp]=;
}
}
void Solve()
{
int temp=;
for(int i=MAXN-;i>=;i--)
{
if(num[i]>=)
{
//printf("%d\n",i);
temp+=num[i];
}
if(temp>=k)
{
printf("%d\n",i);
break;
}
}
}
int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
Init();
Solve();
}
return ;
}

最新文章

  1. 解决Ubuntu安装openssh-server依赖问题
  2. (二)Maven的安装与环境配置
  3. 使用VNC登录Linux
  4. Spring4 学习笔记
  5. 配置Nginx服务
  6. pyqt中使用matplotlib绘制动态曲线 – pythonic
  7. IO调度器原理介绍
  8. 利用nginx 虚拟主机、请求转发实现不同端口web访问
  9. 用Netty开发中间件:网络编程基础
  10. python 内置函数详解
  11. C# Unity的使用
  12. python学习笔记(1)python中的注释和安装python
  13. leaflet 如何绘制圆
  14. jira7通过全局js给编辑区自定义快捷键【原】
  15. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)
  16. itchat分析微信好友的个性签名
  17. MapReduce的map个数调节 与 Hadoop的FileInputFormat的任务切分原理
  18. Oracle之现有表上建新表、操作符、字符函数
  19. DBUtils和连接池
  20. 免费的HTML商业模板-Hidayah

热门文章

  1. MySQL运算符和函数
  2. 使用DataWorks调度DLA循环任务
  3. mySQL start service失败终极解决办法
  4. install tushare in python 3.6
  5. day3_python之函数基础知识
  6. 洛谷P2709 小B的询问 莫队
  7. 让 AE 输出 MPEG
  8. @bzoj - 4382@ [POI2015] Podział naszyjnika
  9. 传说中Python最难理解的点|看这完篇就够了(装饰器)
  10. [学习笔记]整体DP