HDU 4006 The kth great number(multiset(或者)优先队列)
询问第K大的数
//这是我最初的想法,用multiset,AC了——好吧,也许是数据弱也有可能
//multiset运用——不去重,边插入边排序
//iterator的运用,插入的时候,如果是相同的数没直接放在相同的现有的数据后面的 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<set>
using namespace std; //#define IN freopen("c:\\Users\\nit\\desktop\\input.txt", "r", stdin)
//#define OUT freopen("/home/nit/output.txt", "w", stdout)
//int gcd(int a,int b){return b==0?a:gcd(b,a%b);} int main()
{
multiset<int>ms;
multiset<int>::iterator it;
int n,k,a;
char q[];
while(~scanf("%d%d",&n,&k))
{
ms.clear();
int yi=;
for(int i=;i<n;i++)
{
scanf("%s",q);
if(q[]=='I')
{
scanf("%d",&a);
ms.insert(a);
if(yi==)
{
if(a>=*it)//如果比现有的第k大的数大,就更新
it++;
}
}
else
{
if(yi){
yi=;
a=k;
for(it=ms.end();a!=;it--,a--);
printf("%d\n",*it);
}
else
{
printf("%d\n",*it);
}
}
}
}
return ;
}
/*
后来百度上别人的思路,用优先队列:
struct Node
{
int x;
friend bool operator < (Node a,Node b)
{
return a.x > b.x;
}
};
priority_queue <Node> q;
主要用于重载小于号,让小的优先.
输入时先输入k个数,输入k个数后再输入时需要判断输入的数与队头的大小关系.
输入数小于队头则不进队.
输入数大于队头则进队,弹出队头.
保证优先队列中只有k的元素.
而队头是k个元素中最小的元素.
即第k大元素
好吧,我觉得也蛮好的
这是网址:http://www.cnblogs.com/zxotl/archive/2012/09/02/2667820.html
*/
HDU 4006 The kth great number(multiset(或者)优先队列)的更多相关文章
- HDU - 4006 The kth great number multiset应用(找第k大值)
The kth great number Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming ...
- hdu 4006 The kth great number (优先队列)
/********************************************************** 题目: The kth great number(HDU 4006) 链接: h ...
- 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 ...
- HDU 4006 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(优先队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006 题目大意: 第一行 输入 n k,后有 n 行,对于每一行有两种状态 ,①“I x” : 插入 ...
- hdu 4006 The kth great number
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006 思路:利用优先队列的性质,将数据存入后会自动对数据进行排序 #include<stdlib ...
- HDU 4006 The kth great number【优先队列】
题意:输入n行,k,如果一行以I开头,那么插入x,如果以Q开头,则输出第k大的数 用优先队列来做,将队列的大小维护在k这么大,然后每次取队首元素就可以了 另外这个维护队列只有k个元素的时候需要注意一下 ...
- HDU 4006 The kth great number AVL解
提供动态更新数据.第实时QK大量的值什么? 使用AVL统计数据结构做,比较先进的数据结构的内容. 不知道给出的数据为准值是否有反复.下面的程序是因为我能够处理重复数据出现的情况下,. 了repeat的 ...
- hdoj 4006 The kth great number【优先队列】
The kth great number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Oth ...
随机推荐
- 我的WPF控件库——KAN.WPF.XCtrl(141105)
自己开发的WPF控件库,只是初版,有扩展的Button,TextBox,Window.详细参见前几篇博文. WPF自定义控件(一)——Button:http://www.cnblogs.com/Qin ...
- opengl基础学习专题 (三) 多边形绘制的几种样式
题外话 聪明人之所以不会成功,是由于他们缺乏坚韧的毅力. ——艾萨克·牛顿(1643年1月4日—1727年3月31日)英国 也许可以理解为 想更深一步的时候,坚持,努力和聪明缺一不可. 挺直腰杆在此向 ...
- Android---WebView显示Html乱码问题
webView.loadData(result,"text/html","UTF-8"); 反正是用上面的方法无法解决乱码的问题. 使用下面的方法就能完美解决了 ...
- greenDao生成的实体类无法存放JsonArray的解决方法
今天在解析Json数据的时候,发现我们用greenDao生成的实体类只能是基本数据类型,而我请求回来的json数据里面还包含了jsonArray. 下面是json的数据格式 "content ...
- AngularJS 授权 + Node.js REST api
作者好屌啊,我不懂的他全都懂. Authentication with AngularJS and a Node.js REST api 几个月前,我开始觉得 AngularJS 好像好牛逼的样子,于 ...
- Orchard工作原理
概述 本文翻译仅供学习之用,了解Orchard工作原理设计思想.技术点及关键词,如有缺漏请不吝指正.鉴于能力有限定有诸多曲解或不完整的地方,请海涵.不定时完善整理. CMS不像常规的web程序,它更像 ...
- linux 简单的DMA例程
一个简单的使用DMA 例子 示例:下面是一个简单的使用DMA进行传输的驱动程序,它是一个假想的设备,只列出DMA相关的部分来说明驱动程序中如何使用DMA的. 函数dad_transfer是设置DMA对 ...
- 如何向VS2010中插入ActiveX控件并且附带相应的类
上两篇文章中我们已经讲述了ActiveX控件的一些相关知识,本文中,简单说明一下如何在我们自己的程序中使用ActiveX控件.(仍以我们上节课的例子为例) 我们打开VS2010编辑器,新建一个基于对话 ...
- Vim实用命令
[n]yy:从当前行复制n行 [n]p:粘贴n次 [n]dd:删除当前行往下的n行 / : 向后查找 ?:向前查找 u → undo 撤销上一操作 <C-r> → redo 0 → 开启 ...
- VLC编译问题
在Ubuntu下编译VLC源代码生成的VLC无法播放Youtube视频(比如https://www.youtube.com/watch?v=mDp-ABzpRX8) 错误提示如下: zlf@ubunt ...