题目地址:

https://www.luogu.com.cn/problem/P1138

题目描述:
现有nnn个正整数,要求出这nnn个正整数中的第kkk个最小整数(相同大小的整数只计算一次)。

输入格式:
第一行为nnn和kkk;第二行开始为nnn个正整数的值,整数间用空格隔开。

输出格式:
第kkk个最小整数的值;若无解,则输出NO RESULT

数据范围:
n≤10000n \leq 10000n≤10000,k≤1000k \leq 1000k≤1000,正整数均小于300003000030000。

先用哈希表相同数字只保留一个,接着用快速选择算法。代码如下:

#include <iostream>
#include <unordered_set>
using namespace std;const int N = 1e4 + 10;
int n, k, a[N], idx;
unordered_set<int> st;int quick_select(int l, int r) {if (l >= r) return a[l];int i = l, j = r, piv = a[l + (r - l >> 1)];while (i <= j) {while (a[i] < piv) i++;while (a[j] > piv) j--;if (i <= j) {swap(a[i], a[j]);i++;j--;}}if (k <= j) return quick_select(l, j);else if (k >= i) return quick_select(i, r);else return a[k];
}int main() {scanf("%d%d", &n, &k);for (int i = 1; i <= n; i++) {int x;scanf("%d", &x);if (!st.count(x)) {st.insert(x);a[++idx] = x;}}if (k < 1 || k > idx) puts("NO RESULT");else printf("%d\n", quick_select(1, idx));
}

时空复杂度O(n)O(n)O(n)。

【洛谷】P1138 第k小整数相关推荐

  1. 巧用TreeSet求解第k小整数(洛谷P1138题题解,Java语言描述)

    题目要求 P1138题目链接 分析 第K小整数应该是比较经典的问题啦,但我们也可以利用现成的数据结构去完成轻松处理. 既然还要去重,那不妨--嘿嘿嘿--TreeSet万岁!! 把元素全打进去就完成了去 ...

  2. 洛谷 P4823 [TJOI2013]拯救小矮人

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口. 对于每一个小矮人,我们知道他从 ...

  3. 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】

    题目 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1 ...

  4. 洛谷 P1494 [国家集训队]小Z的袜子

    题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只袜子从1到N编 ...

  5. 洛谷 P1878 舞蹈课 —— 小顶堆

    This way 题意: 有 n个人参加一个舞蹈课.每个人的舞蹈技术由整数来决定.在舞蹈课的开始,他们从左到右站成一排.当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞.如果 ...

  6. [NOIP2006] 提高组 洛谷P1066 2^k进制数

    题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后 ...

  7. 洛谷 P3332 [ZJOI2013]K大数查询 解题报告

    P3332 [ZJOI2013]K大数查询 题目描述 有\(N\)个位置,\(M\)个操作.操作有两种,每次操作如果是\(\tt{1\ a\ b\ c}\)的形式表示在第\(a\)个位置到第\(b\) ...

  8. 洛谷P1912:诗人小G(二分栈、决策单调性)

    二分栈,就是通过二分维护的栈 (逃) 解析 本题的决策单调性可以说是显然 但是本题是同维度(其实只有一维)自左向右转移,分治的写法是不能奏效的 所以我们使用决策点调性的另一种实现方法:二分栈 具体来说 ...

  9. 洛谷P1494 [国家集训队]小Z的袜子

    P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- ...

  10. 洛谷P1494 [国家集训队]小Z的袜子 莫队

    题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只袜子从1到N编 ...

最新文章

  1. pocoserver无限重启_poco相机老版本
  2. 【深度学习】人脸识别和口罩检测的应用
  3. 修改RHEL7/centos7网卡为eth0
  4. bat java 指定堆大小_jvm 堆内存 栈内存 大小设置 查看堆大小
  5. 【二维差分】Monitor
  6. cdn节点人少延迟高_让你刷剧一直爽,CDN原理是什么
  7. 高收益债券与杠杆收购:中国机会
  8. Linux shell基础(四)正则表达式与grep命令 beta
  9. Linux后台运行python程序
  10. 力扣每日一题第495题提莫攻击
  11. 微信小程序web-view与H5 通信方式探索
  12. Android系统编译小总结
  13. python adb 实现对支付宝登录及后台监控
  14. 油菜花系统服务器能删除内容吗,在这个油菜花盛开的地方,有这样一家数字化的亲民医院...
  15. springboot+jsp线上饰品商城购物网站java
  16. Android SDK安装、环境变量配置
  17. 原生JS 实现投掷骰子效果
  18. 清华文康活动特刊:多重活动分享贴,不来你就OUT啦
  19. 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
  20. 超详细 quartus 新建工程 及 quartus 和 modelsim 联合仿真 以及 modelsim 的简易教程

热门文章

  1. 如何实现网站访问量统计(html页面)
  2. linux计时器命令,安装及使用Linux终端倒数计时器Countdown的方法
  3. 苹果电脑上不错的几款计时软件
  4. 大学英语综合教程一 Unit 1 课文内容英译中 中英翻译
  5. 电脑使用技巧提升篇4:两步实现电脑软件开机自启
  6. OpenStack--炼数成金
  7. 谢烟客---------Linux之Aho Weinberger Kernighan
  8. SketchUp2016如何安装插件
  9. Java各种学习资源(视频+文档)
  10. Rails Controller中的concerns测试编写