對於POJ3264的思考

2021-07-09 13:25:50 字數 1088 閱讀 6105

嗯嗯poj3264就是你啦~

題目大意:給定區間多次求區間最大值最小值之差(線段樹維護)。

開始寫了,但願能跑個好名次嘿嘿嘿~

北大郭老(郭煒)的歷程用堆式線段樹,那好吧,那我也寫堆式的正好不用指標了~

不過他的歷程足足跑了3秒我覺的不太靠譜阿你說呢~

結果…我只比他少了200ms還是資料讀入優勢…

#include 

#include

using

namespace

std;

const

int inf = 0xffffff0;

int minv = inf;

int maxv = -inf;

struct node //不要左右子節點指標的做法

}; node tree[800010]; //4倍葉子節點的數量就夠

void buildtree(int root , int l, int r) }

void insert(int root, int i,int v)

//將第i個數,其值為v ,插入線段樹

tree[root].minv = min(tree[root].minv,v);

tree[root].maxv = max(tree[root].maxv,v);

if( i <= tree[root].mid() )

insert(2*root,i,v);

else

insert(2*root+1,i,v);

} void query(int root,int s,int e)

if( e <= tree[root].mid())

query(2*root,s,e);

else

if( s > tree[root].mid() )

query(2*root+1,s,e);

else

} int main()

for( i = 0;i < q;i ++ )

return

0; }

我會捲土重來的tat…

POJ 3264 平衡的陣容 分塊

給出乙個長度為n n的數列,求第l l位到第r r位的最大值減最小值。rmq做法 這道題也可以用分塊做。當然線段樹主席樹也都可以。簡直比分塊模板還簡單。因為沒有修改操作。要求ll到rr 之間的最小值,那麼就先將這個數列分成nn 塊,每塊初始化出乙個最大值和最小值,時間複雜度o n o n 接著對於每...

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...