• A1055 The World‘s Richest [排序]


    在这里插入图片描述

    题目大意:给出n个人的姓名、年龄和拥有的钱,然后进行k次查询,每次查询输出在年龄区间内的财富值的从大到小的前m个人的信息。如果财富值相同就就先输出年龄小的,如果年龄相同就把名字按照字典序排序输出~
    注意事项:

    1. 题目本身不难,就是第二个点,他给你很多数据,然后你如果直接查询会消耗大量时间,然后因为依据年龄查询,每一个年龄是一个最小单位,每次查询最多输出100个用户数据,就把每个年龄财富最多的前100个人存入一个新数组,不一定会存满,然后最后再新数组上操作,这样就不会超时了,PAT就是老是卡某个点,感觉A组题所有测试点一次通过还是不容易的。加油~

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    struct person
    {
    	char name[15];
    	int age;
    	int money;
    }per[100001],temp[100001];
    int agecount[100001] = { 0 };     //某年龄的人数
    bool cmp(person a, person b)
    {
    	if (a.money != b.money)
    		return a.money > b.money;
    	else if (a.age != b.age)
    		return a.age < b.age;
    	else
    		return strcmp(a.name, b.name) < 0;
    }
    int main()
    {
    	int n, m;
    	cin >> n >> m;
    	for (int i = 0; i < n; i++)
    	{
    		cin >> per[i].name >> per[i].age >> per[i].money;
    	}
    	sort(per, per + n, cmp);
    	int num = 0;
    	for (int i = 0; i < n; i++)
    	{
    		if (agecount[per[i].age] < 100)
    		{
    			agecount[per[i].age]++;
    			temp[num++] = per[i];
    		}
    	}
    	int c, age1, age2;
    	for (int i = 0; i < m; i++)
    	{
    		cin >> c >> age1 >> age2;
    		cout << "Case #"<<i+1<<":"<<endl;
    		int count = 0;
    		for (int j = 0; j < num; j++)
    		{
    			if (temp[j].age <= age2 && temp[j].age >= age1)
    			{
    				cout << temp[j].name <<" "<< temp[j].age <<" "<< temp[j].money << endl;
    				count++;
    				if (count == c)
    					break;
    			}
    		}
    		if (count == 0)
    		{
    			cout << "None" << endl;
    		}
    	}
    
    }
    
    
  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/Hsiung123/p/13812080.html
Copyright © 2020-2023  润新知