題意為給定n(n<=100000)個數字,然后給出m(m<=50000)個詢問,每次詢問在[i,j]區間內的第k大的數字是多少。
用SBT的方法做就是先把m個詢問按照起點從小到大排序。對于每個詢問區間[i,j],要調整SBT中的元素,使得樹中只有[i,j]中的全部元素,多余元素刪除,然后就可以求得樹中第k大的數。代碼就當模板了。哪里有錯誤希望大家指出,謝謝。
SBT理論知識詳見陳啟峰大牛的論文。
這里有論文的中文版。
POJ2761_SBT