zoukankan      html  css  js  c++  java
  • HDU3785 寻找大富翁【优先队列】

    寻找大富翁

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 7433    Accepted Submission(s): 2755

    Problem Description
    浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.
    Input
    输入包含多组测试用例.
    每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
    n和m同时为0时表示输入结束.
    Output
    请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.
    Sample Input
    3 1 2 5 -1 5 3 1 2 3 4 5 0 0
     Sample Output
    5 5 4 3
     Source

    问题链接HDU3785 寻找大富翁

    问题简述参见上文。

    问题分析这个问题就是输入n个数,从中找出m个最大的值,可以用优先队列来解决,也可以用排序来解决

    程序说明:(略)

    题记:(略)

    参考链接:(略)


    AC的C++语言程序如下:

    /* HDU3785 寻找大富翁 */
    
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
        int n, m, a;
    
        while(scanf("%d%d", &n, &m) != EOF && (n || m)) {
            priority_queue<int> q;
    
            for(int i=1; i<=n; i++) {
                scanf("%d", &a);
    
                q.push(a);
            }
    
            for(int i=1; i<=m; i++) {
                if(q.empty())
                    break;
    
                if(i != 1)
                    printf(" ");
                printf("%d", q.top());
                q.pop();
            }
            printf("
    ");
        }
    
        return 0;
    }




  • 相关阅读:
    php投票系统
    php登陆和注册
    php常见报错
    session和cookie的区别
    php加密方法有哪些
    链接数据库封装类
    php数据库批量删除
    三傻大闹宝莱坞
    巴霍巴利王
    布拉德的中年危机
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563575.html
Copyright © 2011-2022 走看看