POJ2104 平方分割)

2021-09-10 23:52:23 字數 562 閱讀 7677

解題思路:以前使用主席樹ac過一次的題目,現在用平方分割來試試。大致做法就是,把所有數放進maxn大小的桶中。然後對各個桶中的數進行排序。處理時採用二分搜尋的辦法確定結果。即如果有1.。。n個數。則用二分來試這個數試mid是區間中第幾小的數。關於平方分割處理的細節就是:把不完全包括在桶中部分用列舉的辦法篩選,對於完全包括在區間內的桶,則用二分搜尋。最後的複雜度為o(m*(logn)*(根號n*log(根號n))+根號n)。

#include#include#include#includeusing  namespace std;

const int maxn=1000;

int a[100009],num[100009];

vectorg[maxn];

int n,m,b,c,k;

void solve()

printf("%d\n",num[r]);

}int main()

sort(num,num+n);

for(int i=0;iwhile(m--)

}return 0;

}

POJ2104平方分割 線段樹

題意 給出乙個區間 l,r 和乙個k,要查詢 a l a l 1 a r 中,按公升序排列下第k個數。例如數列 1 5 2 6 3 7 4 要查詢 2,5 中第 3個數,即 5 2 6 3 按公升序排列 2 3 5 6的第 3個,即為5。很樸素的想法就是每次查詢的時候都把要查詢的區間排個序,然後取出...

poj2104 劃分樹問題

這個題目的意思是給你乙個區間,讓你找到在某個給出的子區間當中第k大的數。這是我的第乙個劃分樹題目,因為之前做了好多線段樹的題目了,看了看書上基本的 然後按照自己的思路寫了出來。按照這個題目的思路,得用到二分,把給出的元素x n 排好序y n 對於乙個給出的子區間,那麼第k大的元素應該滿足兩點 1 在...

POJ2104 主席樹 整體二分

題目鏈結 kth number 主 席樹 主席樹主席 樹主席樹模板題 關於主席樹沒啥好講的,其實就是動態開點 線段樹 pragma gcc optimize 2 include include include using namespace std typedef long long ll cons...