區間中位數兩例

2022-09-17 12:42:10 字數 793 閱讀 4631

給定陣列 $a_1, a_2, \dots, a_n$。

hihocoder #1849 子陣列的中位數

中位數數定義為排序後第 $\floor$ 個數。

中位數大於 $k$ 等價於陣列中大於等於 $k$ 的數超過一半。

定義陣列 $b_1, b_2, \dots, b_n$,

\begin

b_i :=

\begin

1, & \text, \\

-1, & \text.

\end

\end

區間 $a_l, \dots, a_r$ 的中位數大於等於 $k$ 等價於 $\sum_^ b_i > 0$。

利用數狀陣列可在 $o(n\log n)$ 的時間內算出中位數大於等於 $k$ 的區間有多少個。

**abc107 task d. median of medians

中位數定義為排序後第 $\floor + 1$ 個數。

中位數 $\le k$ 等價於陣列中小於等於 $k$ 的數超過一半。

定義陣列 $b_1, b_2, \dots, b_n$,

\begin

b_i :=

\begin

1, & \text, \\

-1, & \text.

\end

\end

區間 $a_l, \dots, a_r$ 的中位數小於等於 $k$ 等價於 $\sum_^ b_i > 0$。

利用數狀陣列可在 $o(n\log n)$ 的時間內算出中位數小於等於 $k$ 的區間有多少個。

**

關於區間中位數

洛谷某討論 對於一串長度為n n 2000 n n 2000 n n 2 000 的序列,對於所有的i,j 1 i n i j n i,j 1 i n,i j n i,j 1 i n i j n 區間,求出他們的中位數。這個ider先在這裡佔坑吧,畢竟感覺這個思路挺好的。我們可以一開始把整個序列排序...

維護動態區間的中位數

依次讀入乙個整數序列,每當已經讀入的整數個數為奇數時,輸出已讀入的整數構成的序列的中位數。詳細內容 最樸素寫法,每到奇數時位將前面所有資料排序,找到中位數 每次sort是 o nlog n 一組資料需要sort frac 次,所以複雜度為 o n 2log n include include usi...

leetcode 兩個陣列中位數

問題描述 給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 我的解答 packa...