青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

RMQ問題ST算法 POJ 3264

ST算法O(nlogn)預處理,O(1)的查詢指定區間的最值(以最小值為例)

基本上是把待求區間[l,r]分為兩段長為len的區間

左邊一段為[l,l+len-1],右邊一段為[r-len+1,r]

len必須使得兩段區間覆蓋待求區間

設所求數組為w

那么,所求最小值就是兩個區間的最小值間的最小值

即min(min{w[i],l<=i<=l+len-1},min{w[j],r-len+1<=j<=r})

若都在預先處理中先求得兩個區間的最小值

則每次查詢的復雜度都是O(1)

---

對len做一個限制:只能為2的冪

在預處理中求出所有mi[b][t] : 以b為起點,長為2^t的區間的最小值.

則求解min(min{w[i],l<=i<=l+len-1},min{w[j],r-len+1<=j<=r})

就變成min(mi[l][t],mi[r-2^t+1][r]),其中t可以由此得出,以保證兩段區間可以覆蓋待求區間:

t=ln(r-l+1)/ln(2)

---

可以看到mi[b][t]=min(mi[b][t-1],mi[b+2^(t-1)-1][t-1])

特別地對于所有mi[i][0],其值都是w[i];

由此自底向上推出所有的mi[b][t]

mi大小為n*logn,預處理時間復雜度為O(nlogn),查詢時間復雜度為O(1)


#include <iostream>
?#include <math.h>
?#define max(a,b) ((a>b)?a:b)
?#define min(a,b) (a<b?a:b)
?
using namespace std;
?
const int maxn=50001;
?int h[maxn];
?int mx[maxn][16],mn[maxn][16];
int n,q;
?
?void rmq_init()
?{
???? int i,j;
???? for(j=1;j<=n;j++) mx[j][0]=mn[j][0]=h[j];
???? int m=floor(log((double)n)/log(2.0));
???? for(i=1;i<=m;i++){
???????? for(j=n;j>0;j--){
???????????? mx[j][i]=mx[j][i-1];
???????????? if(j+(1<<(i-1))<=n) mx[j][i]=max(mx[j][i],mx[j+(1<<(i-1))][i-1]);
???????? }
??? }
??? for(i=1;i<=m;i++){
???????? for(j=n;j>0;j--){
??????????? mn[j][i]=mn[j][i-1];
???????????? if(j+(1<<(i-1))<=n) mn[j][i]=min(mn[j][i],mn[j+(1<<(i-1))][i-1]);
???????? }
???? }
?}
?
?int rmq(int l,int r)
?{
???? int m=floor(log((double)(r-l+1))/log(2.0));
??? int a=max(mx[l][m],mx[r-(1<<m)+1][m]);
???? int b=min(mn[l][m],mn[r-(1<<m)+1][m]);
??? return a-b;??
?}
?
?int main()
?{
???? int i,l,r;
???? scanf("%d%d",&n,&q);
???? for(i=1;i<=n;i++) scanf("%d",&h[i]);
???? rmq_init();
???? for(i=0;i<q;i++){
???????? scanf("%d%d",&l,&r);
???????? printf("%d\n",rmq(l,r));
???? }

?}

posted on 2008-05-19 20:52 Victordu 閱讀(2582) 評論(2)  編輯 收藏 引用

評論

# re: RMQ問題ST算法 POJ 3264 2008-09-18 19:52 劉劉牛

"就變成min(mi[l][t],mi[r-2^t+1][r]),其中t可以由此得出,以保證兩段區間可以覆蓋待求區間:

t=ln(r-l+1)/ln(2) "


是不是有點問題呢?


  回復  更多評論   

# re: RMQ問題ST算法 POJ 3264 2009-04-11 14:22 Wei Quan Min

Great.....

Can u write sth about suffix array + lcp in the next thread....

I am not really clear about suffix array. Clear about the O(n^2 log n)..
but I'm curious about O(n log n) which is solved by using lcp..

Thx  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統計

常用鏈接

留言簿(5)

隨筆檔案(46)

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产成人精品| 国产精品久久一区主播| 永久555www成人免费| 欧美一级理论片| 欧美在线视屏| 亚洲福利在线观看| 亚洲精品视频一区二区三区| 欧美人成在线视频| 午夜视频一区| 麻豆精品视频| 亚洲直播在线一区| 久久精品噜噜噜成人av农村| 在线观看国产精品淫| 亚洲精品久久嫩草网站秘色| 欧美日韩亚洲综合一区| 欧美在线91| 猛男gaygay欧美视频| 亚洲视频一区| 久久免费视频在线观看| 一区二区三区四区五区在线| 亚洲一区二区在线免费观看| 国语自产偷拍精品视频偷| 欧美激情一区二区三区在线视频| 久久在线视频| 欧美日本乱大交xxxxx| 久久国产精品久久国产精品| 小黄鸭精品aⅴ导航网站入口| 欧美精品v日韩精品v韩国精品v| 国产美女精品视频| 亚洲国产欧美在线| 国产女人精品视频| 欧美大片在线看免费观看| 欧美日韩中文字幕| 欧美不卡三区| 国产伦精品一区二区三区| 亚洲清纯自拍| 1000部国产精品成人观看| 亚洲一区二区三区色| 99re6热在线精品视频播放速度| 牛夜精品久久久久久久99黑人| 午夜国产精品影院在线观看| 亚洲人成在线免费观看| 亚洲在线免费观看| 一区二区欧美国产| 久久影院午夜片一区| 久久精品午夜| 国产精品久久久久久久久免费桃花| 中日韩在线视频| 久久这里只有| 乱中年女人伦av一区二区| 国产精品美女在线| 亚洲人成网站在线观看播放| 韩日成人在线| 亚久久调教视频| 午夜精品久久久久久久99黑人| 亚洲免费一在线| 一本大道久久a久久精二百| 久久一区二区三区四区五区| 久久久久久久综合| 国产日韩欧美| 性欧美办公室18xxxxhd| 欧美有码视频| 国产欧美一区二区三区久久| 亚洲网址在线| 午夜视黄欧洲亚洲| 国产日韩精品电影| 亚洲欧美日韩精品在线| 欧美一区二区观看视频| 国产精品系列在线播放| 亚洲自拍偷拍一区| 久久国产88| 国产一区导航| 美女主播视频一区| 亚洲国产精品久久久久秋霞不卡| 国产精品国内视频| 一本综合久久| 午夜影院日韩| 国产亚洲综合在线| 久久综合亚洲社区| 亚洲国内欧美| 亚洲欧美卡通另类91av| 国产欧美日韩视频| 久久精品国产亚洲a| 亚洲福利视频二区| 亚洲性感激情| 国产欧美精品在线| 久久亚洲精品视频| 亚洲精品美女在线观看| 亚洲欧美清纯在线制服| 国内精品久久国产| 欧美大片免费| 亚洲欧美日韩天堂一区二区| 久久综合99re88久久爱| 亚洲日韩欧美视频| 国产精品久久久久久久久免费桃花 | 欧美大片第1页| 99精品99| 久久伊人亚洲| 亚洲视频每日更新| 影音先锋另类| 国产精品分类| 免播放器亚洲一区| 国产精品99久久久久久www| 久久久国产成人精品| 99精品黄色片免费大全| 国产日韩欧美| 欧美日韩综合久久| 美女黄网久久| 午夜精品免费| 亚洲激情不卡| 国产日韩一区二区三区在线| 欧美一级在线亚洲天堂| 欧美成人r级一区二区三区| 一区二区三区高清在线观看| 国产一区二区久久| 欧美色图麻豆| 欧美 日韩 国产在线| 亚洲在线播放电影| 亚洲精品视频啊美女在线直播| 国产伦精品一区二区三区四区免费 | 亚洲精品在线一区二区| 久久字幕精品一区| 欧美一区二视频在线免费观看| 欧美午夜一区二区| 欧美成人精品在线播放| 久久福利影视| 午夜精品一区二区三区电影天堂 | 性欧美精品高清| 亚洲狼人综合| 亚洲黄色影片| 亚洲国产精品视频| 亚洲大片在线观看| 国产一区二区三区四区五区美女 | 一区二区不卡在线视频 午夜欧美不卡在| 亚洲国产91色在线| 国产美女诱惑一区二区| 欧美日韩亚洲91| 欧美精品久久天天躁 | 久久久久久9| 亚洲欧美一区二区三区极速播放| 国产精品久久网站| 国产精品成人国产乱一区| 欧美日韩一区三区| 国产精品xvideos88| 欧美午夜激情视频| 欧美午夜电影一区| 国产精品美女久久久久久久| 国产精品久久久久久超碰| 欧美三区免费完整视频在线观看| 亚洲在线一区二区| 亚洲欧美在线观看| 欧美亚洲综合网| 久久米奇亚洲| 欧美激情网友自拍| 欧美日韩综合| 国产日韩综合一区二区性色av| 久色成人在线| 欧美另类一区二区三区| 欧美日韩大片| 国产精品私房写真福利视频| 国产精品免费视频xxxx| 国产一区二区观看| 亚洲激情在线激情| 一区二区三区三区在线| 香蕉视频成人在线观看 | 国产精品高精视频免费| 国产精品欧美久久| 精品动漫一区二区| 亚洲免费av电影| 亚洲欧美伊人| 美国成人毛片| 日韩亚洲欧美成人| 欧美一区三区二区在线观看| 久久一区二区三区四区五区| 欧美高清在线观看| 欧美日韩精品欧美日韩精品一 | 亚洲午夜女主播在线直播| 亚洲一二三区在线| 久久深夜福利免费观看| 欧美日韩中文字幕在线视频| 国产欧美精品一区二区三区介绍| 欧美日韩视频在线一区二区观看视频 | 99视频一区二区三区| 欧美影视一区| 欧美久久在线| 伊人成人在线视频| 一本到12不卡视频在线dvd| 亚洲在线日韩| 亚洲第一精品夜夜躁人人爽| 一区二区三区精品视频在线观看| 亚洲高清在线精品| 性欧美在线看片a免费观看| 美女精品国产| 国内精品亚洲| 亚洲免费一区二区| 亚洲精品欧洲| 欧美国产日韩在线观看| 国产亚洲一区在线播放| 亚洲一区二区三区色| 亚洲高清成人|