POJ 3264 平衡的陣容 分塊

2022-09-03 05:06:07 字數 1065 閱讀 1119

給出乙個長度為n

n的數列,求第l

l位到第r

r位的最大值減最小值。

rmq做法:

這道題也可以用分塊做。當然線段樹主席樹也都可以。

簡直比分塊模板還簡單。因為沒有修改操作。

要求ll到rr

之間的最小值,那麼就先將這個數列分成nn​

塊,每塊初始化出乙個最大值和最小值,時間複雜度o(n

)o(n

)接著對於每次詢問,就用分塊求出詢問區間的最大值和最小值,再兩者相減,即為答案。

此**在poj上可以ac,但洛谷只能拿40分,應該是編譯環境的問題。

#include

#include

#include

#include

#define n 50100

using

namespace std;

int n,m,a[n]

,t,x,y,l[n]

,r[n]

,pos[n]

,maxn[n]

,minn[n]

;int

find_max

(int l,

int r)

//暴力求l到r之間的最大值

intfind_min

(int l,

int r)

//暴力求l到r之間的最小值

intmax

(int l,

int r)

//求詢問區間的最大值

intmin

(int l,

int r)

//求詢問區間的最小值

intask

(int l,

int r)

intmain()

if(r[t]

for(

int i=

1;i<=t;i++

)for

(int j=l[i]

;j<=r[i]

;j++

)while

(m--

)return0;

}

對於POJ3264的思考

嗯嗯poj3264就是你啦 題目大意 給定區間多次求區間最大值最小值之差 線段樹維護 開始寫了,但願能跑個好名次嘿嘿嘿 北大郭老 郭煒 的歷程用堆式線段樹,那好吧,那我也寫堆式的正好不用指標了 不過他的歷程足足跑了3秒我覺的不太靠譜阿你說呢 結果 我只比他少了200ms還是資料讀入優勢 includ...

rmp演算法詳細介紹 poj3264

rmq range minimum maximum query 問題 rmq問題是給定乙個區間,求這個區間中的最大或最小值的問題 rmq採用動態規劃的思想來求解 st演算法 square table 預處理 預處理使用 dp的思想,f i,j 表示 i,i 2 j 1 區間中的最小值。例如,f 0,...

RMQ問題ST演算法 POJ 3264

st演算法o nlogn 預處理,o 1 的查詢指定區間的最值 以最小值為例 基本上是把待求區間 l,r 分為兩段長為len的區間 左邊一段為 l,l len 1 右邊一段為 r len 1,r len必須使得兩段區間覆蓋待求區間 設所求陣列為w 那麼,所求最小值就是兩個區間的最小值間的最小值 即m...