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