火影忍者之~静音

 
Time Limit: 1000 MS Memory Limit: 32767 K
Total Submit: 410(92 users) Total Accepted: 113(78 users) Rating: Special Judge: No
Description

传说中的火之国一年一度的公务员选拔又开始了!木叶忍者村此次也要从中选拔出5人来,作为即将上任的新火影纲手的小弟~,可是报考公务员的人数实在是太~~多啦!所以纲手的贴身随从—静音小姐,决定对这写人进行分m批的选拔,每次笔试n人,第一次选出5人,之后每次从这n人与之前参加笔试但未选中的人一起再选出分数最高的5人,如果分数相同则按名字的字典序选择,这样下来可以刷掉一大批人,但纲手只需要5人,这时候就轮到静音小姐的跟班小弟--卡卡西,来将这些人再进行二次筛选,卡卡西决定对这些人进行忍术测试,然后选出前5名,作为最后选出的人选,如果忍术分数相同,那么名字字典序靠前的被选中。

Input
首先是整数m和n,表示要进行m波笔试,每波n人,然后是m组,每组n行,每行包括一个字符串与两个整数,表示一个人的名字和他的笔试分数以及他的忍术分数。输入到文件结束,m<=100,n<=100名字不长于20,分数不超过100.
Output
按顺序输出最后选出的5人的名字,每个名字占一行。(第一次选择的时候不需要考虑忍术成绩,第二次选择也不需要考虑笔试成绩)
Sample Input

1 6

abc 10 20

bcd 20 30

cde 30 40

def 40 50

efg 50 60

fgh 60 70

Sample Output

fgh

efg

def

cde

bcd

Source
2012 Spring Contest 3 - STL
Author
拂晓

题意解析一下:

分m批选拔,第一次选拔选拔出五个人.。然后选剩下的人和下一批的人一起,再选出五个。这样重复进行m次。

然后再从选拔出的五个人中再选出五个。

这题如果一直用sort排序的话。会超时。所以这题就要用到优先队列。可以减少排序的次数。减少时间。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
struct ss
{char name[25];int test;int ninji;friend bool operator < (ss a, ss b)///队列优先顺序{if(a.test==b.test){return strcmp(a.name,b.name)>0;}else{return a.test<b.test;}}};
bool cmp(ss a,ss b)
{if(a.ninji==b.ninji){return strcmp(a.name,b.name)<0;}else{return a.ninji>b.ninji;}
}
int main()
{int n,m;int len;while(~scanf("%d %d ",&m,&n)){len=0;ss temp;ss pep[10005];priority_queue<ss>q;for(int i=0;i<m;i++){for(int j=0;j<n;j++){scanf("%s %d %d",&temp.name,&temp.test,&temp.ninji);q.push(temp);}for(int k=0;k<5;k++)///每次选五个人{pep[len++]=q.top();q.pop();}}sort(pep,pep+len,cmp);for(int i=0;i<5;i++){printf("%s\n",pep[i].name);}}return 0;
}

HRBUSTOJ 1313 火影忍者之~静音 【模拟】【排序】相关推荐

  1. hrbust 1313 火影忍者之~静音【优先队列STL+模拟】

    火影忍者之-静音 Time Limit: 1000 MS Memory Limit: 32767 K Total Submit: 246(58 users) Total Accepted: 76(54 ...

  2. HRBUST 1313 火影忍者之~静音

    优先队列. 每次将$n$个人压入优先队列,取出$5$个,最后排序. #include<cstdio> #include<cstring> #include<cmath&g ...

  3. 1080 Graduate Admission (30 分)【难度: 一般 / 知识点: 模拟 排序】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805387268571136 先总的排序,再枚举每一个学生,对于每一个学生 ...

  4. 第四章:枚举 模拟 排序习题 【完结】

    基本熟练掌握. 目录 1210. 连号区间数 [枚举 ] 1236. 递增三元组 [枚举 / 前缀和 / hush定址法] 1245. 特别数的和 [简单] 1204. 错误票据 [简单] 466. ...

  5. PAT甲级1017 (模拟排序)

    课前分析 感觉和1016差不多, 就模拟一下几个队列, 有空位立即插入并计算等待时间, 没空位计算最早处理完的用户的离去时间,并更新为当前时间等等. (1) vector a(10); //定义了10 ...

  6. JZOJ 3.10 1542——跑步(树状数组+模拟+排序/归并排序)

    题目描述 FJ觉得赛马很无聊,于是决定调查将赛牛作为一种运动的可能性.他安排了N(1 <= N <= 100,000)头奶牛来进行一个L圈的赛牛比赛,比赛在一个环形的长度为C的跑道上进行. ...

  7. 1109 Group Photo (25 分)【难度: 一般 / 知识点: 模拟 排序】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805360043343872 乙级的原题. #include<bit ...

  8. 备战蓝桥杯-枚举、排序、模拟专项练习详解(含有多道蓝桥杯原题)

    枚举.模拟与排序 蓝桥杯所有专项练习 蓝桥杯原题: 连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在 1∼N1∼N 的某个排列中有多少个连号区间呢? 这里所说的连号区间的定义是: 如果区 ...

  9. 1. 帮贡排序-模拟与高精度(普及/提高-)

    文章目录 问题描述 问题分析 代码实现 运行结果 总结 问题描述   在absi2011的帮派里,死号偏多.现在absi2011和帮主等人联合决定,要清除一些死号,加进一些新号,同时还要鼓励帮贡多的人 ...

最新文章

  1. 渗透知识-HTML基础
  2. 21世纪初最有影响力的20篇计算机视觉期刊论文
  3. 19-Realm Management Extension (RME)
  4. 史上最全 Python Re 模块讲解(三)
  5. gradle构建工具_Gradle:我们需要另一个构建工具吗?
  6. 如何正确运用计算机技术,如何正确认识与运用计算机网络技术.doc
  7. 2021上饶市高考中考成绩查询,2021年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口...
  8. fedora docker_如何在Fedora中授予用户使用Docker的权限
  9. 蓝桥杯 ALGO-115 算法训练 和为T Java版
  10. C# Base64方式的编码与解码
  11. Windows 两条命令找到占用你某个端口的程序
  12. 数据--第49课 - 线性索引查找
  13. LINUX不能恢复式安装
  14. java第14次作业
  15. 智慧交通day02-车流量检测实现13:基于虚拟线圈法的车辆统计+视频中的车流量统计原理解析
  16. Java基础知识点梳理
  17. Windows命令行:将多个TS文件合并成MP4
  18. 关于“男孩出剪刀,女孩出布”,你怎么看,你又会怎么选择?
  19. 如何做个人微信号营销,一个人人都能月入3000微信营销方法你真的知道吗?
  20. liunx安装jdk报A fatal exception has occurred. Program will exit

热门文章

  1. 数学建模三剑客MSN | CSDN博文精选
  2. 一步一步搭建Redis + Keepalived主从高可用之Keepalived安装配置(三)
  3. Postgresql语句持续更新
  4. Python float基本用法
  5. 这几本值得你一看再看的程序员素养必备好书
  6. 字节跳动面试:京东面试真题解析,薪资翻倍
  7. 用Matlab实现蒙特卡洛法求心形线面积
  8. 移动APP持续交付系列之云构建价值分析
  9. ubuntu进去安全模式_ubuntu 14.04全攻略
  10. 想找Java项目练手,却不知道从哪找?