【洛谷】P1138 第k小整数
题目地址:
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小整数相关推荐
- 巧用TreeSet求解第k小整数(洛谷P1138题题解,Java语言描述)
题目要求 P1138题目链接 分析 第K小整数应该是比较经典的问题啦,但我们也可以利用现成的数据结构去完成轻松处理. 既然还要去重,那不妨--嘿嘿嘿--TreeSet万岁!! 把元素全打进去就完成了去 ...
- 洛谷 P4823 [TJOI2013]拯救小矮人
题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口. 对于每一个小矮人,我们知道他从 ...
- 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】
题目 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1 ...
- 洛谷 P1494 [国家集训队]小Z的袜子
题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只袜子从1到N编 ...
- 洛谷 P1878 舞蹈课 —— 小顶堆
This way 题意: 有 n个人参加一个舞蹈课.每个人的舞蹈技术由整数来决定.在舞蹈课的开始,他们从左到右站成一排.当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞.如果 ...
- [NOIP2006] 提高组 洛谷P1066 2^k进制数
题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后 ...
- 洛谷 P3332 [ZJOI2013]K大数查询 解题报告
P3332 [ZJOI2013]K大数查询 题目描述 有\(N\)个位置,\(M\)个操作.操作有两种,每次操作如果是\(\tt{1\ a\ b\ c}\)的形式表示在第\(a\)个位置到第\(b\) ...
- 洛谷P1912:诗人小G(二分栈、决策单调性)
二分栈,就是通过二分维护的栈 (逃) 解析 本题的决策单调性可以说是显然 但是本题是同维度(其实只有一维)自左向右转移,分治的写法是不能奏效的 所以我们使用决策点调性的另一种实现方法:二分栈 具体来说 ...
- 洛谷P1494 [国家集训队]小Z的袜子
P1494 [国家集训队]小Z的袜子 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- ...
- 洛谷P1494 [国家集训队]小Z的袜子 莫队
题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具体来说,小Z把这N只袜子从1到N编 ...
最新文章
- pocoserver无限重启_poco相机老版本
- 【深度学习】人脸识别和口罩检测的应用
- 修改RHEL7/centos7网卡为eth0
- bat java 指定堆大小_jvm 堆内存 栈内存 大小设置 查看堆大小
- 【二维差分】Monitor
- cdn节点人少延迟高_让你刷剧一直爽,CDN原理是什么
- 高收益债券与杠杆收购:中国机会
- Linux shell基础(四)正则表达式与grep命令 beta
- Linux后台运行python程序
- 力扣每日一题第495题提莫攻击
- 微信小程序web-view与H5 通信方式探索
- Android系统编译小总结
- python adb 实现对支付宝登录及后台监控
- 油菜花系统服务器能删除内容吗,在这个油菜花盛开的地方,有这样一家数字化的亲民医院...
- springboot+jsp线上饰品商城购物网站java
- Android SDK安装、环境变量配置
- 原生JS 实现投掷骰子效果
- 清华文康活动特刊:多重活动分享贴,不来你就OUT啦
- 查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
- 超详细 quartus 新建工程 及 quartus 和 modelsim 联合仿真 以及 modelsim 的简易教程