pb_ds priority_queue
pb_ds priority_queue
想 要 使 用 這 黑 魔 法 需 要 含 入 下 列 兩 個 函 式 庫:
#include <ext/pb_ds/priority_queue.hpp>
#include <ext/pb_ds/assoc_container.hpp>
宣 告 方 式:
__gnu_pbds::priority_queue < Value_Type, Cmp_Fn, Tag > pq;
Value_Type 是 儲 存 值 的 類 型。
Cmp_Fn 是 比 較 方 法,默 認 是std::less。
Tag 可 以 說 是 這 個 函 式 庫 的 精 隨:
- pairing_heap_tag
- thin_heap_tag
- binomial_heap_tag
- rc_binomial_heap_tag
- binary_heap_tag
效 率 請 看 此,點 我
(不 過 binary_heap_tag 似 乎 有 bug,測 出 來 別 的 tag 花 了 一 兩 秒 的,它 花 了 五 分 鐘。)
(一 般 推 薦 用 pairing_heap_tag)
pbds priority queue 的 方 法 就 跟 一 般 的 STL priority queue 一 樣。
但 多 了 join(合併兩個堆);少 了 emplace (可 以 用 push 替 代)
code demo:
留言
張貼留言