HDU 4585

http://acm.hdu.edu.cn/showproblem.php?pid=4585

从原来的人中找出战斗数值最接近的,输出他们两人的序号

要在logn的复杂度完成查找,我用的是set,当然用map也可以,两个内部都是红黑树实现

水题一道

#include <iostream>
#include <cstdio>
#include <set>
#include <cmath>
using namespace std ;
struct node
{
    int id,lv ;
    friend bool operator <(node a,node b)//按lv从小到大排序
    {
        return a.lv>b.lv;
    }
} ;
int main()
{
    int n ;
    set <node> S ;
    while(~scanf("%d",&n),n)
    {
        S.clear() ;
        node ma ;
        ma.id=1 ;ma.lv= 1000000000 ;
        S.insert(ma) ;
        while(n--)
        {
            scanf("%d%d",&ma.id,&ma.lv) ;
            set <node>::iterator it,it1 ;
            it=S.lower_bound(ma) ;
            if(it==S.begin())
            {
                printf("%d %d\n",ma.id,it->id) ;
            }
            else
            {
                it1=it ;
                it-- ;
                if(fabs(it1->lv-ma.lv)>fabs(it->lv-ma.lv))
                {
                    printf("%d %d\n",ma.id,it->id) ;
                }
                else
                {
                    printf("%d %d\n",ma.id,it1->id) ;
                }
            }
            S.insert(ma) ;
        }
    }
    return 0 ;
}

HDU 4585

时间: 2024-08-30 04:50:06

HDU 4585的相关文章

HDU 4585 Shaolin(STL map)

Shaolin Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4585 Description Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every year, trying to be a mon

hdu 4585 Shaolin两种方法(暴力和STL)

转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 Problem Description 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 mast

HDU 4585 Shaolin(Treap找前驱和后继)

Shaolin Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 3191    Accepted Submission(s): 1350 Problem Description Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shao

hdu 4585 Shaolin两种方法(暴力和STL map set)

转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 Problem Description 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 mast

[HDU 4585] Shaolin (map应用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 题目大意:不停的插入数字,问你跟他相距近的ID号.如果有两个距离相近的话选择小的那个. 用map,先用upper_bound找到大的,然后迭代器减1,就能够找到相近的两个. 然后..用链表不知道为什么有问题.... 而且迭代器it,如果减1的话,不能写 it2 = --it1; 这样会wa 但是..it2 = it1; it2--;这样就AC了,在这里记录一下,今后注意. 1 //#pragm

hdu 4585 项目管理(vector运用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 欢迎光临天资小屋:http://user.qzone.qq.com/593830943

HDU 4585 Shaolin(map应用+二分)

题目大意:原题链接 初始少林最开始只有一个老和尚,很多人想进少林,每个人有一个武力值,若某个人想进少林,必须先与比他早进去的并且武力值最接近他的和尚比武, 如果接近程度相同则选择武力值比他小的,按照进入少林的先后顺序,求出每个和尚进去的时候应当和哪个和尚比武. #include<map> #include<iostream> using namespace std; int main() { int n,id,g; map<int,int>::iterator it,p

hdu 4585 shaolin 平衡树

Description 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

hdu 4585 Shaolin(STL map)

Problem Description 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 script