Shaolin HDU - 4585(map模板题)

题意:

少林寺有n+1个和尚,他们都有一个独有的编号和战斗力值,当一个年轻人通过所有考试并被宣布为少林的新僧人时,将会有一场战斗,作为欢迎的一部分。新和尚必须与一位战斗等级最接近他的战斗等级的老和尚战斗。如果有两个老僧人满足这个条件,新僧侣将采取战斗等级低于他的僧侣与他对打。现在保证输入是按照编号顺序升序输入的,要求按顺序输出每一组战斗的双方编号,先输出新和尚的后输出老和尚的。(第一个和尚编号是1,战斗力是1000000000)

题目:

Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every year, trying to be a monk there. The master of Shaolin evaluates a young man mainly by his talent on understanding the Buddism scripture, but fighting skill is also taken into account.
When a young man passes all the tests and is declared a new monk of Shaolin, there will be a fight , as a part of the welcome party. Every monk has an unique id and a unique fighting grade, which are all integers. The new monk must fight with a old monk whose fighting grade is closest to his fighting grade. If there are two old monks satisfying that condition, the new monk will take the one whose fighting grade is less than his.
The master is the first monk in Shaolin, his id is 1,and his fighting grade is 1,000,000,000.He just lost the fighting records. But he still remembers who joined Shaolin earlier, who joined later. Please recover the fighting records for him.

Input

There are several test cases.
In each test case:
The first line is a integer n (0 <n <=100,000),meaning the number of monks who joined Shaolin after the master did.(The master is not included).Then n lines follow. Each line has two integer k and g, meaning a monk’s id and his fighting grade.( 0<= k ,g<=5,000,000)
The monks are listed by ascending order of jointing time.In other words, monks who joined Shaolin earlier come first.
The input ends with n = 0.

Output

A fight can be described as two ids of the monks who make that fight. For each test case, output all fights by the ascending order of happening time. Each fight in a line. For each fight, print the new monk’s id first ,then the old monk’s id.

Sample Input

3
2 1
3 3
4 2
0

Sample Output

2 1
3 2
4 2

分析:

这个题充分体现出了map的优势,因为map存储的时候是按照关键字升序存储的,所以如果按照战斗力值作为关键字建立map的话,找到此战力值的前驱和后继就是可能要与新和尚对打的老和尚了
map的专项知识点看我的另一篇博客:https://blog.csdn.net/zeng_jun_yv/article/details/104704897

AC代码:

#include<bits/stdc++.h>
using namespace std;
map<int,int>a;
int n,x,y;
int main()
{while(~scanf("%d",&n)&&n){a.clear();a[1000000000]=1;for(int i=1; i<=n; i++){cin>>x>>y;a[y]=x;map<int,int>::iterator it=a.find(y);if(it==a.begin())printf("%d %d\n",x,(++it)->second);else if(it==a.end())printf("%d %d\n",x,(--it)->second);else if((abs((++it)->first)-(--it)->first)<abs((--it)->first-(++it)->first))printf("%d %d\n",x,(++it)->second);elseprintf("%d %d\n",x,(--it)->second);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Azure Show|第一期 开播啦!嘉宾梁迪李卓恒李佳芮

欢迎来到Azure Show!Azure ShowAzure Show 是由微软最有价值专家、微软技术社区区域总监卢建晖和微软开发者关系PM朱兴亮共同发起的一个关于微软Azure、开源技术、还有技术社区相关的线上节目。每期节目由MVP面对面、开源故事、从零开始以及Azure101组成&#xff0c;邀请微软技…

c语言coin函数库,Coin Test | C/C++程序员之家

Coin Test时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;1描述As is known to all,if you throw a coin up and let it droped on the desk there are usually three results. Yes,just believe what I say ~it can be the right side or the …

[PAT乙级]1033 旧键盘打字(getline()读入)

旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其…

基于 abp vNext 和 .NET Core 开发博客项目 - 完善与美化,Swagger登场

上一篇文章(https://www.cnblogs.com/meowv/p/12896898.html)已经成功将博客项目跑起来了&#xff0c;那么本篇主要是将之前遗留的问题解决&#xff0c;现在的代码看起来可能还是比较混乱&#xff0c;有大量与之无关的代码存在里面&#xff0c;对于强迫症患者来说真的是零容忍。…

string函数知识点总结

标准c中string类函数介绍 之所以抛弃char*的字符串而选用C标准程序库中的string类&#xff0c;是因为他和前者比较起来&#xff0c;不必 担心内存是否足够、字符串长度等等&#xff0c;而且作为一个类出现&#xff0c;他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需…

[C++11]基于范围的for循环

C11提供了一种新型的for循环形式 - 基于范围的for循环 语法: for (declaration : expression) {//循环体 }在上面的语法格式中&#xff0c;declaration表示遍历声明&#xff0c;在遍历过程中&#xff0c;当前被遍历到的元素会被存储到声明的变量中&#xff0c;expression是要…

c语言画笔的使用方法,新手必看:Photoshop笔刷画笔工具基本使用教程

本文为Photoshop初学者提供基本的Photoshop笔刷画笔工具的基本使用方法,这可以说是Photoshop最重要的功能。希望初学PS朋友认真学习&#xff0c;有所帮助&#xff01;工具/原料Photoshop CC 2014或者其他较新版本的psPhotoshop笔刷画笔工具介绍&#xff1a;1、画笔工具在哪里呢…

基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来

上一篇文章(https://www.cnblogs.com/meowv/p/12896177.html)已经成功创建了博客项目&#xff0c;但是abp默认给我们引用了许多项目中用不到的组件。本篇文章将给项目进行瘦身&#xff0c;删掉对我们来说暂时用不到的组件。讲解各个模块之间的关系&#xff0c;写一个Hello Worl…

计算机网络原理第一章习题3-24 3-25

计算机网络原理第一章习题 3-24假定站点A和B在同一个10Mb/s以太网网段上。这两个站点之间的传播时延为225比特时间。现假定A开始发送一帧&#xff0c;并且在A发送结束之前B也发送一帧。如果A发送的是以太网所容许的最短的帧&#xff0c;那么A在检测到和B发生碰撞之前能否把自己…

[C++11]可调用对象

在C中存在"可调用对象"这么一个概念&#xff0c;准确来说&#xff0c;可调用对象有如下几种定义: 1.是一个函数指针 代码如下: int print(int a, double b) {cout << a << b << endl;return 0; }int(*func)(int, double) &print;2.是一个具…

c语言加花指令,花指令的应用

原标题&#xff1a;花指令的应用对免杀的影响是非常大的&#xff0c;有效地利用花指令可以使免杀工作事半功倍&#xff0c;甚至单凭花指令就可以达到免杀的效果。一、花指令在免杀领域的应用1、花指令的应用技巧在使用之前&#xff0c;首先我们应该明白什么时候比较适合使用&am…

走向统一的 .NET 旅程

这是微软第一次完全线上举办的Build大会&#xff0c;也是第一次完全属于开发者的大会。几乎所有的新产品都是属于开发者&#xff0c;开发者成为了唯一的主角。现在的微软比以往任何时候都贴近开发者&#xff0c;重视开发者的作用&#xff0c;为他们打造平台和工具。因为没有开发…

[PAT乙级]1039 到底买不买

小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串&#xff0c;但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下&#xff0c;某串珠子里是否包含了全部自己想要的珠子&#xff1f;如果是&#xff0c;那么告诉她有多少多余的珠子&#xff1b;如果…

Collecting Bugs POJ - 2096(基础概率dp+期望模板)

题意&#xff1a; 有s个系统&#xff0c;n种bug&#xff0c;小明每天找出一个bug&#xff0c;可能是任意一个系统的&#xff0c;可能是任意一种bug&#xff0c;即是某一系统的bug概率是1/s&#xff0c;是某一种bug概率是1/n。 求他找到s个系统的bug&#xff0c;n种bug&#xff…

python3调用c语言数组,使用Python中的ctypes访问数组

我正在用C编写一个ode解算器&#xff0c;导出到一个WindowsDLL和一个DLL的Python包装器。我非常习惯Python&#xff0c;但我对C和ctypes也是一个完全的初学者。在受公认答案here启发的修改后的解决方案如下所示&#xff1a;C代码/* my_clib.c */#include #include #include str…

Service Mesh 高可用在企业级生产中的实践

Service Mesh Virtual Meetup 是 ServiceMesher 社区和 CNCF 联合主办的线上系列直播。本期为 Service Mesh Virtual Meetup#1 &#xff0c;邀请了四位来自不同公司的嘉宾&#xff0c;从不同角度展开了 Service Mesh 的应用实践分享&#xff0c;分享涵盖来自陌陌和百度的 Servi…

Fibonacci again and again HDU - 1848(尼姆博弈+SG函数的运用+SG函数详解)

题意&#xff1a; 给出三堆石子(m,n,p个)&#xff0c;两人每次只能取斐波那契数f[i]个&#xff0c;最先取光所有石子者取胜 题目&#xff1a; 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生&#xff0c;它是这样定义的&#xff1a; F(1)1; F(2)2; F(n)F(n…

[PAT乙级]1041 考试座位号

每个 PAT 考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试…

sony android mp3播放器,入手一年,详细聊聊 索尼ZX505、艾利和SR15 两款安卓播放器的使用体验...

入手一年&#xff0c;详细聊聊 索尼ZX505、艾利和SR15 两款安卓播放器的使用体验2020-12-04 16:00:21113点赞179收藏28评论创作立场声明&#xff1a;本文所测商品为自费购入。如参加张大妈家的活动获得&#xff0c;我会在文中点明。坚持独立的评价观点是笔者创作的基本底线&…

研发协同平台持续交付2.0架构演进

源宝导读&#xff1a;为了打通CI/CD环节&#xff0c;实现持续的端到端的交付能力&#xff0c;RDC平台提供了在线化的更新服务&#xff0c;随着业务量增长与场景的需要&#xff0c;我们对更新服务架构重新设计&#xff0c;实现了2.0版本。本文将介绍更新服务2.0的架构演进过程与…