冷血格斗场

Posted 王宜鸣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冷血格斗场相关的知识,希望对你有一定的参考价值。

题意:

http://bjutacm.openjudge.cn/lianxi/s011/

思路:

使用stl中的map实现。map中保存每个会员的实力值和id组成的pair,对于每个新会员二分查找与之实力值最相近的老会员。

实力值相同的会员只需保存id最小的那个即可。

实现:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <map>
 4 #include <cmath>
 5 using namespace std;
 6 
 7 int n, id, d;
 8 map<int, int> m;
 9 
10 int main()
11 {
12     m.insert(pair<int, int>(1000000000, 1));
13     scanf("%d", &n);
14     for (int i = 0; i < n; i++)
15     {
16         scanf("%d %d", &id, &d);
17         map<int, int>::iterator it = m.lower_bound(d);
18         printf("%d ", id);
19         if (it == m.end())
20         {
21             it--;
22             printf("%d\n", it->second);
23         }
24         else if (it == m.begin())
25         {
26             printf("%d\n", it->second);
27         }
28         else
29         {
30             int tmp = abs(it->first - d);
31             int res = it->second;
32             it--;
33             int tmp2 = abs(it->first - d);
34             if (tmp2 < tmp || (tmp2 == tmp && it->second < res))
35             {
36                 res = it->second;
37             }
38             printf("%d\n", res);
39         }
40         if (!m.count(d) || m[d] > id)
41         {
42             m[d] = id;
43         }
44     }
45     return 0;
46 }

 

以上是关于冷血格斗场的主要内容,如果未能解决你的问题,请参考以下文章

热血格斗场

放下SLA,敏捷开发是一场无限制格斗

美女主播张子萱Ruby-zhang邀您一起玩《生死格斗5无限》

暗影格斗2怎么存档 存档使用方法

ManagementObjectSearcher一些使用 (引用自冷血灬书生)

奥特曼格斗进化0怎么用屏障