图论知识(19)
总时间限制: 1000ms 内存限制: 65536kB
为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家冷血格斗场。格斗场实行会员制,但是新来的会员不需要交入会费,而只要同一名老会员打一场表演赛,证明自己的实力。
我们假设格斗的实力可以用一个正整数表示,成为实力值,两人的实力值可以相同。另外,每个人都有一个唯一的id,也是一个正整数。为了使得比赛更好看,每一个新队员都会选择与他实力最为接近的人比赛,即比赛双方的实力值之差的绝对值越小越好,如果有多个人的实力值与他差别相同,则他会选择id最小的那个。
不幸的是,Facer一不小心把比赛记录弄丢了,但是他还保留着会员的注册记录。现在请你帮facer恢复比赛纪录,按照时间顺序依次输出每场比赛双方的id。
第一行一个数n(0 & n &=100000),表示格斗场新来的会员数(不包括facer)。以后n行每一行两个数,按照入会的时间给出会员的id和实力值。一开始,facer就算是会员,id为1,实力。
N行,每行两个数,为每场比赛双方的id,新手的id写在前面。
解题思路:本题使用的存储结构为映射(map),根据题意,可以将实力设为第一关键字(first),将编号(id)设为第一关键字对应的值(second)。对于每输入一个会员的数据,先在映射中找出大于等于它的第一个元素,记录下他们实力的差值的绝对值以及该元素的编号,然后将所得的迭代器地址减1,得到小于它的第一个元素,比较它们实力的差值的绝对值与之前的绝对值,如果第二个绝对值小则将记录的编号改为该元素的编号,如果两个绝对值相等,则比较它们的编号,取编号小的那个。需要注意的是,在找大于等于它的第一个元素和找小于它的第一个元素时,要判断其是否存在。
#include&cstdio&
#include&cstdlib&
#include&iostream&
#include&algorithm&
#include&cstring&
#include&map&
#include&cmath&
const int maxn=100005;
int N,id,p;
map&int,int&
//运用映射建立存储结构
int main()
freopen(&48.in&,&r&,stdin);
//freopen(&48.out&,&w&,stdout);
scanf(&%d&,&N);
for(int i=1;i&=N;i++)
scanf(&%d%d&,&id,&p);
map&int,int&::
it=mp.lower_bound(p);
if(it==mp.end())
//没有大于输入会员的实力的会员
int t=abs(it-&first-p);
int idx=it-&
if(it!=mp.begin())
//如果it==mp.begin(),则没有小于输入会员的实力的会员
if(abs(it-&first-p)&t || (abs(it-&first-p)==t && it-&second&idx))
//如果实力差值相等,取编号小的
printf(&%d %d\n&,id,idx);
it=mp.find(p);
if(it==mp.end() || it-&second&id)
//原映射中没有输入的该实力的会员或输入的该实力的会员的编号比原映射中该实力的会员的编号小
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:12759次
排名:千里之外
原创:57篇
(1)(8)(10)(39)2016年北京大学信息学奥赛训练营上机考核第二场
E:冷血格斗场
总时间限制:
为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家冷血格斗场。格斗场实行会员制,但是新来的会员不需要交入会费,而只要同一名老会员打一场表演赛,证明自己的实力。我们假设格斗的实力可以用一个正整数表示,成为实力值,两人的实力值可以相同。另外,每个人都有一个唯一的id,也是一个正整数。为了使得比赛更好看,每一个新队员都会选择与他实力最为接近的人比赛,即比赛双方的实力值之差的绝对值越小越好,如果有多个人的实力值与他差别相同,则他会选择id最小的那个。不幸的是,Facer一不小心把比赛记录弄丢了,但是他还保留着会员的注册记录。现在请你帮facer恢复比赛纪录,按照时间顺序依次输出每场比赛双方的id。
第一行一个数n(0 < n <=100000),表示格斗场新来的会员数(不包括facer)。以后n行每一行两个数,按照入会的时间给出会员的id和实力值。一开始,facer就算是会员,id为1,实力值。
N行,每行两个数,为每场比赛双方的id,新手的id写在前面。
E题的id和实力值都小于2^31子弹飞格斗赛第三战打响 火爆精彩场面迭出(图)|踢法|对攻_凤凰资讯
子弹飞格斗赛第三战打响 火爆精彩场面迭出(图)
用微信扫描二维码分享至好友和朋友圈
中新网北京1月20日电 近日,子弹飞终极格斗系列赛第三战在位于香河的天下第一城金色大厅拉开战幕。比赛当晚现场座无虚席,热情的观众用掌声和欢呼为参赛选手加油助威,场场精彩,多次出现KO和降服的终结场面,为本次终极格斗大赛划上圆满的句号。
原标题:子弹飞格斗赛第三战打响 火爆精彩场面迭出(图)王宇地面重击。中新网北京1月20日电 近日,子弹飞终极格斗系列赛第三战在位于香河的天下第一城金色大厅拉开战幕。比赛当晚现场座无虚席,热情的观众用掌声和欢呼为参赛选手加油助威,场场精彩,多次出现KO和降服的终结场面,为本次终极格斗大赛划上圆满的句号。第一场比赛是72公斤级MMA规则的比赛,开局后双方经过简单的试探后开始有了拳腿的交锋,在双方的一次拳法对攻中陶烁宇摆拳击中对手冯亚飞使其倒地并连续地面打击,最终TKO获胜。第二场是70公斤级自由搏击规则中泰对抗赛,中方选手韩飞龙本场发挥自己腿法多变的优势,连续的下劈和舍身踢法让泰国对手阿塞姆难以招架,最终中方选手韩飞龙和对手打满三局点数优势判定获胜。第三场是当晚唯一的一场女子比赛,对阵双方分别是中国的候妙契和俄罗斯的纳塔莉娅?吉纳奇科娃。双方都是进攻型的打法风格,连续的拳腿组合和缠斗膝法让比赛充满了火药味,俄罗斯选手的鼻子在第三回合被打出了血,不过意志顽强的她毅然坚持到最后,最终中方选手候妙契凭借点数的优势获得本场比赛胜利。第四场是66公斤级MMA规则的比赛,本场比赛终结的速度超出观众的预料,俄罗斯悍将阿力亚首回合刚开始就抓住机会利用站立的断头台技术降服了蒙古族小伙乌格图木吉。第五场60公斤级自由搏击规则可谓是当晚站立比赛中最火爆的,中方选手王凡迎战泰国高手拉菲,开局王凡明显进攻节奏上快于泰国对手,连续的直拳和扫腿让拉菲频频防守。不过随着比赛的进行,拉菲慢慢进入比赛的状态,利用自己独特的泰式低扫加近身膝撞让比赛变得更加惊心动魄,而且拉菲现场故作微笑的挑衅也赢得观众的喝彩,最终点数和气势都占优势的拉菲判定获胜。计县的地面压制。第六场是77公斤级MMA规则的比赛,悍将王宇迎战美国选手大卫?班纳尔,开局后王宇被对手摔倒进入地面缠斗,封闭性防守的王宇并没有让在上位的对手占到任何便宜。回到站立状态后,王宇一记大力低扫腿让对手有些踉跄,紧接着双腿抱摔美国对手并开始地面打击,最终王宇抓住一次对手的失误成功施展手臂十字固,首回合降服对手获胜。第七场是66公斤级MMA规则的比赛,中国名将“玉面刽子手”计县对阵来自西班牙的弗朗西斯科?琼斯,双方经过简单的拳腿对拼之后,计县率先摔倒对手获得上位的优势。不过计县的腿却被对手死死锁住,他通过不断的翻转体位最终成功逃脱并开始暴风骤雨般的拳头进行地面反击,最终裁判终止比赛,计县首回合TKO对手获胜。第八场79公斤级MMA规则的比赛可谓是一场闪电战,俄罗斯名将穆斯里穆?萨利霍夫开局十几秒左右时用自己的杀手锏转身后蹬腿击中中方选手库尔班江并在地面打击中TKO获胜,库尔班江遗憾输掉比赛,不过他敢于挑战世界顶级选手的勇气值得所有人敬佩,虽败犹荣。最后一场66公斤级MMA规则的比赛是当晚的压轴之战,中国MMA名将“鬼跤姚”姚红刚对阵日本选手竹内幸司,开局姚红刚快速摔倒对手占据上位,不过由于疏忽将头颈部的空当给对手做三角锁的机会。日本选手三角锁给姚红刚造成不小的麻烦,意志力极强的姚红刚并没有慌乱而是寻找逃脱的机会,最终由于日本选手体力不支的原因成功逃脱。之后姚红刚便展开疯狂的反攻,连续的直拳摆拳组合将对手打得有些踉跄,而且鼻子也被打出了血。在之后的回合中,姚红刚始终控制着比赛的节奏,将对手的气势完全压住,尤其是回合末的连续打击将现场带入高潮,最终凭借点数优势判定获胜。(完)
用微信扫描二维码分享至好友和朋友圈
凤凰资讯官方微信
播放数:676240
播放数:307725
播放数:163191
播放数:5808920
48小时点击排行