HDU4585 Shaolin map的經典運用

2022-05-02 21:39:09 字數 508 閱讀 1591

題意大意:很多人想進少林寺,少林寺最開始只有乙個和尚,每個人有有乙個武力值,若這個人想進少林,必須和比他先進去的人比武並且武力值最接近他的比武,如果有相同的則選擇武力值比他小的,問當他進去的時候要和哪個和尚比武。

思路:正常情況暴力,n=100000,呵呵。

n*n的操作肯定不行的,最少要優化到nlogn,聯想到map,map裡的數會自動排序,它是由紅黑樹實現的,能實現o(n)的排序(對第一關鍵字排序),

然後再由mp.lower_bound(val)實現logn的查詢。

總算法複雜度 n*logn,map碉堡了。 

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;67

intmain()

825 mp[p]=id;26}

27}28return0;

29 }

view code

HDU4585 Shaolin Map容器簡單應用

題目大意 說少林寺乙個乙個來 每次來乙個要找乙個實力最相近的人和他打一場,輸出每次比賽的人,先輸出新來的,後輸出功力最相近的,如果有兩個人一樣相近,就取功力比較低的那位 so sweeeeeet 思路 其實就是乙個排序查詢 插入維護的問題,但是資料比較大,一看就知道要用log的時間去查詢和維護,於是...

HDU4585 樹狀陣列 STL

題意 有n 1個僧侶,然後1號已經在塔里了,能力值是1e9,現在依次給你兩個數,第乙個代表標號,第二個代表能力值,每次挑乙個在塔里的能力最接近的跟她打,如果能力相同的取小,然後把它扔進塔里 每次輸出兩個標號,乙個舊的,乙個新的。思路 當時就感覺很水,所以做著做著就 變成了,離散化能力值,然後利用樹狀...

hdu4585 平衡樹解法

平衡樹板子 找出前驅後繼節點比較一下 include include include include include include include include include include includeusing namespace std define ll long long cons...