HDU 4006 The kth great number 【STL 使用练习】

今天的题都是队友出的,我就出了这道水题~

贴个短代码STL。。。

#include <iostream>
#include 
<cstdio>
#include 
<algorithm>
#include 
<queue>
#include 
<vector>
using namespace std;
int main()
{
    
int n,k;
    
while(scanf("%d %d",&n,&k) == 2)
    {
        priority_queue
<int,vector<int>,greater<int> > Q;
        
for(int i = 1;i <= n;i++)
        {
            
char opt;
            scanf(
" %c",&opt);
            
if(opt == 'I')
            {
                
int a;
                scanf(
"%d",&a);
                Q.push(a);
                
if(Q.size() > k)
                    Q.pop();
            }
            
else
                printf(
"%d\n",Q.top());
        }
    }
}

posted on 2011-09-03 20:38 BUPT-[aswmtjdsj] @ Penalty 阅读(1275) 评论(7)  编辑 收藏 引用 所属分类: HDU Solution Report

评论

# re: HDU 4006 The kth great number 【STL 使用练习】 2011-09-05 22:21 demo

大牛可不可以提供数据?我自己写的堆无限WA。  回复  更多评论   

# re: HDU 4006 The kth great number 【STL 使用练习】 2011-09-05 22:52 BUPT-[aswmtjdsj] @ Penalty

@demo
这个- -我一不是DLUT的,而不是HDU的。。。。上哪儿找数据去?

这题的数据生成器应该还是比较好写的。。自己写个随机数据生成器和暴力程序对拍吧。。  回复  更多评论   

# re: HDU 4006 The kth great number 【STL 使用练习】 2011-09-06 08:29 demo

嗯,谢谢!  回复  更多评论   

# re: HDU 4006 The kth great number 【STL 使用练习】 2011-09-06 12:09 demo

这个题好像出得不太严谨,如果案例是
5 3
I 1
I 2
I 2
I 3
Q
这个案例跑出来的答案是2但按题目意思应该是1吧?
就好像排名一样,成绩一样的名次应该并列,而不是指定某个大于另一个,否则就太不公平了吧?  回复  更多评论   

# re: HDU 4006 The kth great number 【STL 使用练习】 2011-09-06 17:38 BUPT-[aswmtjdsj] @ Penalty

@demo
少年你想多了- -||。。。
你不能对于相同元素“去重复”吧?
题目没说不会有相同元素,那么相同元素之间虽然无法排序,但是还是要占排名的啊。  回复  更多评论   

# re: HDU 4006 The kth great number 【STL 使用练习】[未登录] 2011-09-08 10:43 teoy

大牛~~太强了  回复  更多评论   

# re: HDU 4006 The kth great number 【STL 使用练习】 2011-09-08 11:51 BUPT-[aswmtjdsj] @ Penalty

@teoy
你们两个好基友。。。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿(1)

随笔分类(150)

随笔档案(71)

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜