[BZOJ2724][Violet 6]蒲公英
阿新 • • 發佈:2017-10-03
center mem 集合 pro 一個 www src discuss 有一個
1 2 3 2 1 2
1 5
3 6
1 5
2
1
設$mode\left(A\right)$表示集合$A$的眾數
那麽有一個顯然的定理為$mode\left(A\cup B\right)\in A\cup\left\{mode\left(B\right)\right\}$
需要離散化,時間復雜度$O\left(nlogn\right)$
分為$x$塊
設$f[i][j]$為第i塊到第j塊的眾數,通過枚舉$i$來求,時間復雜度為$O\left(xn\right)$
對於每個詢問$\left(l,r\right)$,把中間的整塊裏面的眾數用$f$數組得到,然後邊緣的暴力判斷出現次數
而出現次數的求法為:對每個權值開一個vector記錄出現位置,在裏面二分
所以單次詢問的復雜度為$O\left(\frac{nlogn}{x}\right)$
那麽總時間復雜度為$O\left(nlogn\right)+O\left(xn\right)+O\left(\frac{mnlogn}{x}\right) \ge O\left(nlogn+n\sqrt{mlogn}\right)$
當且僅當$x=\sqrt{mlogn}$時等號成立
2724: [Violet 6]蒲公英
Time Limit: 40 Sec Memory Limit: 512 MB Submit: 2404 Solved: 825 [Submit][Status][Discuss]Description
Input
修正一下
l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1
Output
Sample Input
6 31 2 3 2 1 2
1 5
3 6
1 5
Sample Output
12
1
HINT
修正下:
n <= 40000, m <= 50000
[BZOJ2724][Violet 6]蒲公英