zoukankan      html  css  js  c++  java
  • 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[10];
        while(~scanf("%d%d",&n,&k))
        {
            ms.clear();
            int yi=1;
            for(int i=0;i<n;i++)
            {
                scanf("%s",q);
                if(q[0]=='I')
                {
                    scanf("%d",&a);
                    ms.insert(a);
                    if(yi==0)
                    {
                        if(a>=*it)//如果比现有的第k大的数大,就更新
                            it++;
                    }
                }
                else
                {
                    if(yi){
                        yi=0;
                        a=k;
                        for(it=ms.end();a!=0;it--,a--);
                        printf("%d
    ",*it);
                    }
                    else
                    {
                        printf("%d
    ",*it);
                    }
                }
            }
        }
        return 0;
    }
    View Code

    /*

    后来百度上别人的思路,用优先队列:

    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

    */

    一道又一道,好高兴!
  • 相关阅读:
    Python+selenium之调用JavaScript
    Python+selenium 之操作Cookie
    Python+selenium整合自动发邮件功能
    Python之查询最新的文件
    jQuery之回调对象
    jQuery之XML的加载和解析
    jQuery之DOM属性
    jQuery之Ajax--快捷方法
    jQuery之Ajax--底层接口
    jQuery之Ajax--辅助函数
  • 原文地址:https://www.cnblogs.com/laiba2004/p/3847478.html
Copyright © 2011-2022 走看看