数据结构基础+STL--第k大
来源:互联网 发布:苹果cms添加广告 编辑:程序博客网 时间:2024/05/01 06:57
Description
Xiao Ming andXiao Bao are playing a simple Numbers game. In a round Xiao Ming can choose towrite down a number, or ask Xiao Bao what the kth great number is. Because thenumber written by Xiao Ming is too much, Xiao Bao is feeling giddy. Now, try tohelp Xiao Bao.
Input
There areseveral test cases. For each test case, the first line of input contains twopositive integer n, k. Then n lines follow. If Xiao Ming choose to write down anumber, there will be an " I" followed by a number that Xiao Mingwill write down. If Xiao Ming choose to ask Xiao Bao, there will be a"Q", then you need to output the kth great number.
Output
The output consistsof one integer representing the largest number of islands that all lie on oneline.
Sample Input
8 3
I 1
I 2
I 3
Q
I 5
Q
I 4
Q
Sample Output
1
2
3
即当输入I时更新数列,输入Q时输出第m大
利用建堆的方式来存储数据及排序
priority_queue<Type,Container, Functional>
其中Type为数据类型,Container 为保存数据的容器,Functional 为元素比较方式。
Container 必须是用数组实现的容器,比如 vector, deque 但不能用 list.
STL里面默认用的是vector. 比较方式默认用 operator< , 所以如果你把后面俩个参数缺省的话,
优先队列就是大顶堆,队头元素最大。
priority_queue<int>q;//默认为递增排序,大顶堆
priority_queue<int ,vector<int>,greater<int> >q;//递减排序,小顶堆
priority_queue<int ,vector<int>,less<int> >q;//递增排序
代码:
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main()
{
int n,k,i,a;
char s[2];
while(scanf("%d %d",&n,&k)==2)
{
priority_queue<int ,vector<int>,greater<int> >q;//定义递减的堆
for(i=1;i<=n;i++)
{
scanf("%s",s);
if(s[0]=='I')
{
scanf("%d",&a);
q.push(a);
if(q.size()>k)//仅保存前k小的数据
q.pop();
}
else
printf("%d\n",q.top());
}
}
return 0;
}
- 数据结构基础+STL--第k大
- STL求第k大的元素
- 用STL优先队列查找数组第k大
- poj 2104 K-th Number 静态区间第K大 可持续数据结构
- P1788第k大
- 找第k大
- 第K大素数
- 数列第k大
- 区间第K大
- 第K大素数
- 第k大元素
- 寻找第K大
- 第k大元素
- P1788 第k大
- 寻找第K大
- [JZOJ4927]第K大
- JZOJ4927. 第K大
- 第K大
- 0027算法笔记——【回溯法】回溯法与装载问题
- 数据结构基础+STL--winner map
- 问题十二:编写模板函数sort,功能是:对三个形参a, b, c按照从大到小排序。
- KM模板
- JUnit单元测试(四)--JUnit运行测试套件
- 数据结构基础+STL--第k大
- 数据结构基础+STL--符号匹配
- 数据结构基础+STL--字典翻译
- 致命错误,遇到在搜索预编译头文件时遇到意外的文件结尾
- Boost.Asio和ACE之间关于Socket编程的比较
- 课设补充
- PHP中的addslashes双胞胎兄弟函数
- 标准体重计算器
- 将app打包为Deb全过程