明天就是一輪省選了啊。。這多是退役前的最後一篇博文了吧(若是心情很差怕是連遊記都會咕)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級別,因此考場上若是條件容許的話說不定能夠救你一命~