博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4006 The kth great number(优先队列)
阅读量:4966 次
发布时间:2019-06-12

本文共 1149 字,大约阅读时间需要 3 分钟。

题目链接:

题目大意:

  第一行 输入 n k,后有 n 行,对于每一行有两种状态 ,①“I x” : 插入 x ② “Q” : 输出当前 第 K大的数

解题思路:

  利用优先队列保证插入新数据后的队列是有序的。

  重点:保证 k 个数的队列就行。加一个标志 flag_k; 

I:  如果 flag_k<k,则将新输入的数放入队列中。

   否则判断第k个数是否小于新输入的数,如果小于,则队头出队,新输入的入队:保证队列中第k个数一直是最大的。

Q:  输出队头即可。 

 

AC Code:

1 #include
2 using namespace std; 3 struct Node 4 { 5 int key; 6 friend bool operator < (Node a,Node b) 7 { 8 return a.key>b.key; 9 }10 };11 int main()12 {13 int n,k;14 while(scanf("%d%d",&n,&k)!=EOF)15 {16 priority_queue
q;17 int flag_k=0;18 while(n--)19 {20 char c;21 cin>>c;22 if(c=='I')23 {24 Node tem;25 scanf("%d",&tem.key);26 if(flag_k
q.top().key)34 {35 q.pop();36 q.push(tem);37 }38 }39 }40 else if(c=='Q')41 printf("%d\n",q.top().key);42 }43 }44 return 0;45 }

 

转载于:https://www.cnblogs.com/A--Q/p/5915719.html

你可能感兴趣的文章
cookie session 和登录验证
查看>>
为mysql数据库建立索引
查看>>
语言-汉语-官话-中原官话-兖菏片:兖菏片
查看>>
HTML-参考手册: 画布
查看>>
杂项:MIS
查看>>
Node.js:全局对象
查看>>
6、python中的字符串
查看>>
String、StringBuffer与StringBuilder之间区别
查看>>
bash中常见环境变量env、set、export 、declare与bash漏洞原理
查看>>
Vue.js 子组件的异步加载及其生命周期控制
查看>>
数据库表结构导出sql语句
查看>>
C++库(Thrift)
查看>>
python问题记录
查看>>
linux基础知识
查看>>
实验三:Linux进程管理(HDU)
查看>>
学习站点
查看>>
20155228 2017-5-31 课堂测试:编写MyOD.java
查看>>
分支语句和循环语句(1)
查看>>
Ubuntu Git安装与使用
查看>>
Unity3D脚本编程--基本概念
查看>>