The kth great number
The kth great number
Problem Description
Input
Output
Sample Input
8 3
I 1
I 2
I 3
Q
I 5
Q
I 4
Q
Sample Output
1
2
3
Hint
分析:
就是说,给你一些数字,然后问题第k大的数字是谁中间呢会有一些新的数字加进来。我最初的想法,你加任你加,sort天下第一。然后就有了,加的时候,我不管,问的时候,我就排序一下,然后输出。超时,好吧,问题也不是很大,可能是我保存的数字太多了,于是这次就只保存k个,如果需要更新前面的k个数,我就sort 一下,不然我就不更新,然后超时。我就想,我可以考虑用插入排序去节省时间,那么我只要sort一次,应该不会有问题,可以我一想,插入排序后面移动时间比sort还要慢一些。感觉又不行。并且有一个很大的问题就在于,当sort排一个几乎是有序的序列的时候,时间会退化的很严重,时间复杂度会上升。所以,尝试了多次之后,选择放弃使用sort,于是用了优先队列。有小根堆去保存前k个,这样的话,取数方便的一下,时间复杂度也减下来了。
 #include<bits/stdc++.h>
 using namespace std;
 priority_queue<int, vector<int>, greater<int> >a;
 int main () {
   char ch;
   int n,k;
   while (~scanf("%d%d",&n,&k)) {
     while (!a.empty())
         a.pop();
     while (n--) {
       int num;
       getchar();
       scanf("%c", &ch);
       if (ch == 'I') {
         scanf("%d",&num);
         if (a.size() < k)
           a.push(num);
         else{
           int  mid = a.top();
           if (num > mid) {
             a.pop(); //队列头部数据出队
             a.push(num);//在队列尾部增加num数据
           }
         }
       }else {
         num = a.top();
         printf("%d\n",num);
       }
     }
   }
   return ;
 }
The kth great number的更多相关文章
- HDU 4006The kth great number(K大数 +小顶堆)
		
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
 - [LintCode] Kth Smallest Number in Sorted Matrix 有序矩阵中第K小的数字
		
Find the kth smallest number in at row and column sorted matrix. Have you met this question in a rea ...
 - hdu 4006 The kth great number (优先队列)
		
/********************************************************** 题目: The kth great number(HDU 4006) 链接: h ...
 - Lintcode: Kth Smallest Number in Sorted Matrix
		
Find the kth smallest number in at row and column sorted matrix. Example Given k = 4 and a matrix: [ ...
 - hdoj 4006 The kth great number【优先队列】
		
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
 - The kth great number(set)
		
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
 - The kth great number(优先队列)
		
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
 - HDOJ4006 	The kth great number 【串的更改和维护】
		
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
 - HDU 4006 The kth great number 优先队列、平衡树模板题(SBT)
		
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
 - [LeetCode] Kth Smallest Number in Multiplication Table 乘法表中的第K小的数字
		
Nearly every one have used the Multiplication Table. But could you find out the k-th smallest number ...
 
随机推荐
- 树莓派Zero W无键盘无屏幕初始化
			
买了个树莓派Zero W,结果发现没mini hdmi线 淘宝了一根mini hdmi,等了5天,拿到手后发现zero还没地接键盘,这下脑袋大了 查了下资料,发现树莓的系统,可以这boot分区中加入一 ...
 - 使用Swagger自动生成文档
			
1.maven依赖 maven仓库(https://mvnrepository.com/)搜索springfox <!-- https://mvnrepository.com/artifact/ ...
 - Redis实战(十七)Redis各个版本新特性
			
序言 Redis1.0 Redis2.0 Redis3.0 Redis4.0 Redis5.0 资料
 - [Noip模拟题]宠物之战senso
			
Description 众所周知,moreD的宠物已经被moreD奴役得体无完肤.这只宠物实在忍无可忍,把自己每天走魔法树的经历告诉了 自己的宠物.同时他还说明了自己爬树是多么地慢,以至于moreD每 ...
 - FastDfs单机版搭建
			
详细的最新版fastdfs单机版搭建 前言 目前项目是tomcat单机部署的,图片.视频也是上传到tomcat目录下,关键是此项目的主要内容还就是针对图片.视频的,这让我非常担忧:文件服务器的应用是必 ...
 - CSS 处理溢出强行换行
			
CSS折行样式 word-break:break-all;允许单词拆分折行 word-break:keep-all;只能在半角空格或连字符处换行. word-wrap:break-word;在长单词或 ...
 - Apache Drill 调研学习
			
Apache Drill 调研学习 ## 一.Drill概述 在大数据时代,对于Hadoop中的信息,越来越多的用户需要能够获得快速且互动的分析方法.大数据面临的一个很大的问题是大多数分析查询都很缓慢 ...
 - [BZOJ2111]:[ZJOI2010]Perm 排列计数(组合数学)
			
题目传送门 题目描述 称一个1,2,...,N的排列${P}_{1}$,${P}_{2}$,...,${P}_{N}$是Magic的,当且仅当2≤i≤N时,${P}_{i}$>${P}_{\fr ...
 - Ajax监测开始执行及结束执行
			
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
 - gitblit 数据迁移(复制)
			
gitblit 数据迁移 完全拷贝方式: 将原服务器上的gitblit的安装目录.数据目录等相关目录拷到另一台服务器上即可,这样启动方式和使用端口及数据和原服务上的一模一样.(因为gitblit是不用 ...