• hdoj 3785 寻找大富翁【优先队列+sort排序】


    寻找大富翁

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


    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
    本来以为优先队列速度会快点结果只快了100多ms
    sort排序:
    #include<stdio.h>
    #include<string.h>
    #include<queue>
    #include<algorithm>
    using namespace std;
    bool cmp(int a,int b)
    {
    	return a>b;
    }
    int str[100010];
    int main()
    {
    	int n,m,j,i,s,t;
    	while(scanf("%d%d",&n,&m)&&n!=0&&m!=0)
    	{
    		for(i=0;i<n;i++)
    		{
    			scanf("%d",&str[i]);
    		}
    		sort(str,str+n,cmp);
    		if(n>m)
    		{
    			for(i=0;i<m;i++)
    		    {
    		    	if(i==0)
    			    printf("%d",str[i]);
    			    else
    			    printf(" %d",str[i]);
    		    }
    		    printf("
    ");
    		}
    	
    		else
    		{
    			for(i=0;i<n;i++)
    		    {
    		    	if(i==0)
    			    printf("%d",str[i]);
    			    else
    			    printf(" %d",str[i]);
    		    }
    		    printf("
    ");
    		}	
    	}
    	return 0;
    } 
    

      优先队列:

    #include<stdio.h>
    #include<queue>
    using namespace std;
    int main()
    {
    	int n,m,j,i,t,k;
    	while(scanf("%d%d",&n,&m)&&n!=0&&m!=0)
    	{
    		priority_queue<int>q;
    		int c=n;
    		while(c--)
    		{
    			scanf("%d",&t);
    			q.push(t);
    		}
    		if(n<m)
    		{
    			k=n;n=m;m=k;
    		}
    		int a=n-m;
    		int p=0;
    		while(q.size()>a)
    		{
    			if(p==0)
    			printf("%d",q.top());
    			else
    			printf(" %d",q.top());
    			p++;
    			q.pop();
    		}
    		printf("
    ");
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    适用于Java和JavaScript的Codota AI自动完成
    Postgresql常用函数整理
    vue引入echarts地图的三种方式
    Linux下 tar 命令介绍
    如何并发执行Linux命令
    如何复用外部shell脚本
    shell 脚本中日期运算
    有问题找男人帮忙- Linux下man命令
    MySQL 排序规则简介
    再也不用担心 SSH 断开了
  • 原文地址:https://www.cnblogs.com/tonghao/p/4683474.html
Copyright © 2020-2023  润新知