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:

留言

熱門文章