【HDU No. 4006】 第k 大的数 The kth great number
创始人
2024-01-31 18:44:42
0

【HDU No. 4006】 第k 大的数 The kth great number

杭电OJ 题目地址

在这里插入图片描述

【题意】

小明和小宝正在玩数字游戏。游戏有n轮,小明在每轮中都可以写一个数,或者问小宝第k 大的数是什么(第k 大的数指有k -1个数比它大)。

游戏格式为:

  • I c ,表示小明写下一个数c ;
  • Q,表示小明问第k 大的数。

请对小明的每个询问都给出第k 大的数。

【输入输出】

输入:

输入包含多个测试用例。每个测试用例的第1行都包含两个正整数n 、k (1≤k ≤n ≤1000000),表示n 轮游戏和第k 大的数。然后是n 行,格式为I c 或Q。

输出:

对每个询问Q,都单行输出第k 大的数。

【样例】

在这里插入图片描述

提示: 当写下的数字个数小于k 个时,小明不会问小宝第k 大的数。

【思路分析】

这道题数据范围很大,直接暴力肯定超时,因此可以借助优先队列实现。

【算法设计】

① 使用优先队列(最小值优先)存储最大的k 个数。

② 插入。若队中元素个数小于k ,则直接入队;若当前输入元素大于队头,则队头出队,当前元素入队。

③ 查询。队头(堆顶)就是第k 大的数,输出即可。

【举个栗子】

根据输入样例,操作过程如下。

① 插入。I 1:元素个数小于3,直接入队。I 2:元素个数小于3,直接入队。I 3:元素个数小于3,直接入队。

在这里插入图片描述

② 查询。查询第3大的数,队头1为第3大的数。数字3是第1大。

③ 插入。I 5:元素个数不小于3,5比队头大,则队头出队,5入队。

在这里插入图片描述

④ 查询。查询第3大的数,队头2为第3大的数。

⑤ 插入。I 4:元素个数不小于3,4比队头大,则队头出队,4入队。

在这里插入图片描述

⑥ 查询。查询第3大的数,队头3为第3大的数。

【算法实现】

#include
#include
#include//提供比较函数greater 
#includeusing namespace std;int main(){int i,n,k,num;char c;priority_queue,greater >q;//小顶堆 while(~scanf("%d%d",&n,&k)){while(q.size())//初始化队列为空 q.pop();             for(i=1;i<=n;i++){cin>>c;if(c=='I'){scanf("%d",&num);if(q.size()

在这里插入图片描述

相关内容

热门资讯

2025中国经济重要数据公布,...   中新网1月19日电 1月19日,中国国务院新闻办公室在北京举行新闻发布会,介绍2025年国民经济...
转发周知!春运火车票今起开售 ...   今天(1月19日)  春运第一天火车票开售  哪天可买春节假期第一天的车票?  2026年春运购...
行走的思政课“走新”更“走心”   “太激动了,在天安门广场看升国旗,全场一起唱国歌的时候,激动得眼泪都流出来了。”2025年,乌鲁...
大寒迎年,藏着哪些讲究?   1月20日,大寒将至,民俗中有“大寒迎年”的说法,不过,2026年春节的公历日期是2月17日,与...
新质生产力助力电影产业升级   “十五五”规划建议提出,推进文化和科技融合,推动文化建设数智化赋能、信息化转型。新年伊始,各地正...
最高检:完善低龄未成年人严重暴...   记者从今天(19日)召开的全国检察长会议上了解到,2025年检察机关持续强化未成年人权益保护和犯...
【好评中国】外资“加码”、游客...   开放,成为“十五五”开局之年中国的鲜明特征。2026年首月已过去近2/3,开年来,中国与世界的距...
“鲜味经济”“鲜花经济”撬动节...   央视网消息:春节期间,总免不了海鲜干货的大菜。这段时间,在山东沿海的“鲜味经济”正持续升温。在青...
买重疾险避坑指南:别让误区与限... 只看保费高低,是最常见的误区之一。不少人把价格当成首要选择标准,觉得保费越便宜越划算。但从保险产品设...
春运火车票今起开售 购票有这些...   今天(1月19日)  春运第一天火车票开售  哪天可买春节假期第一天的车票?  2026年春运购...