茲瓷查rank和kth的STL平衡樹

茲瓷查rank和kth的STL平衡樹

明天就是一輪省選了啊。。這多是退役前的最後一篇博文了吧(若是心情很差怕是連遊記都會咕)node

衆周所知stl中有一個依靠紅黑樹實現的nb數據結構-std::set數據結構

可是這玩意兒沒有維護siz域,也就是不能作相似於詢問rank(i)(查詢\(i\)的排名)和kth(i)(查詢排名爲\(i\)的數)less

可是stl中還有一個更nb的東西-pb_ds中的平衡樹spa

定義的話首先要引用code

#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>

而後class

__gnu_pbds::tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> s;

就能夠啦date

能夠使用:sso

s.order_of_key(i)來獲得值爲\(i\)的數的排名引用

*s.find_by_order(i)來獲得排名爲\(i\)的數數據

複雜度比手寫的慢不少,但大概仍是log級別,因此考場上若是條件容許的話說不定能夠救你一命~

相關文章
相關標籤/搜索