HDU 4585 Shaolin
2015-02-14 21:12
295 查看
这题大意是有一个庙里,每个和尚都有自己的编号和自己的战斗力,1号战斗力最碉10^9这么大,每个入庙的和尚都要和自己战斗力相近的人战斗,如果有两个跟他战斗力相近,他选战斗力比他低的那个。现在告诉你和尚入庙顺序,问和尚的打斗顺序。
想法:这题可以用map搞一搞,用战斗力作为map的键值,然后查找与他相近的和尚。比较就可以知道他跟谁打了。
想法:这题可以用map搞一搞,用战斗力作为map的键值,然后查找与他相近的和尚。比较就可以知道他跟谁打了。
#include<cstdio> #include<iostream> #include<cstring> #include<map> #include<algorithm> using namespace std; int main() { int n; while(scanf("%d",&n)) { if(n==0) return 0; map<int ,int > m; m.clear(); m[1000000000] = 1;//1号战斗力最碉。 int id,fight,ans; for(int i = 0 ; i < n ; i++) { scanf("%d %d",&id,&fight); m[fight] = id;//存到map中。 map<int,int> ::iterator j; j = m.find(fight);//找他的位置。 if(j==m.begin())//如果他是战斗力最低的,就直接跟后一个打。 ans = (++j)->second; else//否则,找他位置的前后来比较。 { map<int ,int > ::iterator j1,j2; j1 = j2 = j; if(abs((--j1)->first-fight)<=abs((++j2)->first-fight)) ans = j1->second; else ans = j2->second; } printf("%d %d\n",id,ans); } } return 0; }
相关文章推荐
- HDU 4585 Shaolin(STL map)
- HDU 4585 Shaolin(Treap)
- hdu 4585 shaolin 平衡树
- HDU 4585 Shaolin(听说兼职和尚100+/天)
- HDU 4585 Shaolin (map)
- HDU_4585_Shaolin
- 【STL】hdu 4585 Shaolin
- [HDU 4585] Shaolin (map应用)
- HDU 4585 Shaolin(STL map)
- HDU 4585 Shaolin 找最接近的数 Treap / set
- HDU 4585 Shaolin(2013杭州邀请赛J题-二分)
- hdu 4585 shaolin—— STL lower_bound的应用
- HDU 4585 Shaolin (STL)
- HDU 4585 Shaolin(treap模板题)
- hdu 4585 Shaolin
- hdu 4585 shaolin 平衡树
- HDU 4585 Shaolin 2013杭州邀请赛
- hdu 4585 Shaolin
- HDU 4585 Shaolin (STL)
- HDU 4585 ShaoLin 基础Treap