眾所周知,這是一道莫隊題(雖然可以用主席樹)。
$1e5 $ 的區間且不易用線段樹維護的題可以用莫隊,已經有了 $ o(n \sqrt ) $ 的複雜度,這時再寫各種樹維護會達到 $ o(n \sqrt \log ) $ 的複雜度,畢竟不是所有人都是wys。
事實上多加入/刪除乙個點,就是單點修改,區間查詢的問題,單點分塊即可做到 $ o(1) $ 修改, $ o(\sqrt ) $ 查詢。
最終時間複雜度 $ o(n \sqrt ) $ 。
#includeusing namespace std;
int n,m,a[100010],pos[100010],len,p;
int sz[410],l[410],r[410],bl[100010],sum=0,num[100010];
struct p ;p ask[100010];
int cnt[100010],l=1,r=0,ans[100010];
inline int read()
inline bool cmp(const p &x,const p &y)
for(int i=1;i<=m;i++) printf("%d\n",ans[i]);
return 0;
}
P3730曼哈頓交易 莫隊演算法
題目鏈結 題目大意 乙個區間內有n個數字,有m個詢問,每次詢問乙個區間。回答這個區間的第k大的熱度值。熱度值定義 數字i的熱度值為 這個區間內i的出現次數。權值分塊 莫隊演算法 首先暴力做法 對於每乙個區間,暴力搜尋出每個數字的出現次數,把出現次數push到乙個陣列裡面,尋找到出現次數的第k大的數字...
曼哈頓迴路
acm.sgu.ru problem.php?contest 0 problem 122 1959 年 william rowan hamilton 發明了乙個小玩具,這個玩具是乙個木刻的正十二面體,每面系正五角形,三面交於一角,共 20 個角,沒每個角上標有世界上乙個重要城市。他提出乙個問題 要求...
曼哈頓距離
切雪兒距離距離是什麼?走過象棋的人就知道。這個距離其實就是max x i x j y i y j 就是兩個點之間的垂直距離和水平距離之間的最大的那個 這個就是象棋裡邊的國王和王后走的最短路 還有乙個歐式距離,別人稱之為歐幾里得距離,也就是我們初中高中學習的兩點之間的直線距離,sqrt x1 y1 2...