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

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 閱讀(2581) 評論(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>
            国产无一区二区| 亚洲黄色免费电影| 在线视频日韩精品| 亚洲国产日韩欧美在线99| 亚洲伦伦在线| 国产在线不卡| 国产亚洲欧美一区二区三区| 一区精品在线播放| 在线视频免费在线观看一区二区| 久久久久久香蕉网| 欧美亚洲三区| 欧美日韩国产va另类| 国产精品入口福利| 日韩视频在线一区| 欧美国产第一页| 一区二区三区四区五区在线| 欧美激情综合网| 韩国av一区二区三区在线观看| 中文国产成人精品久久一| 欧美在线短视频| 99精品国产99久久久久久福利| 亚洲一区二区精品| 一本到12不卡视频在线dvd| 亚洲电影欧美电影有声小说| 国产精品婷婷| 欧美日韩国产一区精品一区| 亚洲精品一区二区三| 欧美韩日一区| 欧美高清视频一区| 日韩一级免费| 一本一本大道香蕉久在线精品| 亚洲精品在线视频观看| 亚洲七七久久综合桃花剧情介绍| 欧美中文字幕在线| 亚洲精品四区| 免费一级欧美在线大片| 亚洲国产精品久久久久婷婷老年| 老司机亚洲精品| 欧美国产在线视频| 国产日韩av高清| 制服诱惑一区二区| 亚洲欧洲日产国产网站| 美女精品国产| 免费的成人av| 国产亚洲欧美一区二区| 亚洲欧美国产高清| 午夜久久久久久| 欧美视频专区一二在线观看| 欧美国产日韩免费| 最新国产拍偷乱拍精品| 欧美激情国产日韩精品一区18| 欧美激情2020午夜免费观看| 悠悠资源网亚洲青| 免费不卡亚洲欧美| 欧美高清在线视频观看不卡| 狠狠色噜噜狠狠色综合久 | 久久se精品一区二区| 久久夜色精品一区| 亚洲看片网站| 小嫩嫩精品导航| 欧美三级网址| 亚洲视频在线一区| 久久国产精品久久久久久久久久| 国产精品人成在线观看免费| 亚洲免费一级电影| 欧美中文字幕视频在线观看| 国产精品国产三级国产| 亚洲欧美一区二区三区久久| 亚洲国产中文字幕在线观看| 国产精品白丝av嫩草影院| 最新国产の精品合集bt伙计| a4yy欧美一区二区三区| 欧美三级电影网| 亚洲天堂av在线免费观看| 欧美精品免费播放| 亚洲女人天堂成人av在线| 午夜电影亚洲| 在线色欧美三级视频| 免费人成精品欧美精品| 亚洲精品麻豆| 久久精品欧美日韩精品| 久久夜色精品国产欧美乱| 久久看片网站| 一本大道久久a久久精二百| 欧美一区二区三区视频在线| 亚洲黄色视屏| 国内精品久久久久影院薰衣草| 中文av字幕一区| 亚洲国产天堂久久综合网| 亚洲无限av看| 日韩一级在线| 亚洲精品一区二| 亚洲日本在线观看| 亚洲高清资源| 136国产福利精品导航| 在线观看日韩一区| 国产一区999| 欧美精品播放| 久久久免费观看视频| 一区二区精品国产| 一区二区国产日产| av成人免费在线观看| 一区二区三区精密机械公司 | 亚洲美女黄色| 欧美黄色片免费观看| 欧美成人免费视频| 女生裸体视频一区二区三区| 麻豆精品视频| 伊人春色精品| 亚洲人屁股眼子交8| 亚洲国产一区二区a毛片| 影音先锋日韩精品| 日韩一区二区久久| 欧美一区二区视频在线观看2020| 久久婷婷久久| 99视频一区| 久久精品成人一区二区三区蜜臀 | 欧美一区二区三区在线观看视频 | 国产日韩欧美视频在线| 一区在线播放视频| 久久免费视频观看| 欧美专区在线观看一区| 欧美一区二区私人影院日本| 亚洲国产日韩在线一区模特| 亚洲一区免费网站| 欧美激情在线有限公司| 国产欧美丝祙| 9久re热视频在线精品| 久热精品在线视频| 久久爱另类一区二区小说| 欧美日本国产精品| 亚洲国产精品美女| 久久免费高清| 欧美一区二区三区播放老司机| 欧美视频在线观看 亚洲欧| 99re6这里只有精品| 9i看片成人免费高清| 亚洲女人天堂成人av在线| 欧美jizzhd精品欧美喷水| 欧美一区二区三区在线| 国产精品国产一区二区| 亚洲国产婷婷香蕉久久久久久| 久久久av毛片精品| 亚洲女人小视频在线观看| 欧美mv日韩mv国产网站| 久久精品视频va| 免费在线播放第一区高清av| 亚洲精品视频免费观看| 国产精品theporn| 亚洲免费小视频| 亚洲综合精品| 黄色一区二区在线| 欧美国产日韩a欧美在线观看| 欧美激情 亚洲a∨综合| 亚洲天堂视频在线观看| 制服丝袜亚洲播放| 黄色av一区| 亚洲日本久久| 欧美亚州一区二区三区| 美国十次了思思久久精品导航| 免费在线欧美视频| 午夜综合激情| 欧美另类99xxxxx| 免费在线欧美黄色| 欧美性一二三区| 亚洲免费电影在线观看| 亚洲大胆人体在线| 中文av一区特黄| 亚洲精品日韩久久| 久久久久国内| 久久久久网址| 伊人激情综合| 久久精品国产999大香线蕉| 亚洲制服少妇| 亚洲视频中文| 亚洲精品一区在线| 一区二区三区导航| 欧美日本免费| 亚洲精品免费电影| 日韩午夜免费视频| 国产精品一区二区欧美| 久久影院午夜论| 久久精品中文字幕一区二区三区| 欧美日韩一级黄| 中文国产成人精品| 亚洲中字黄色| 国产午夜精品全部视频播放| 欧美亚洲综合在线| 欧美a级片网站| 亚洲美女一区| 99视频有精品| 先锋资源久久| 亚洲欧洲一二三| 国产精品电影观看| 久久国产主播精品| 亚洲国内自拍| 久久久91精品国产一区二区三区 | 久久久水蜜桃| 亚洲欧洲日韩在线| 国产精品亚洲аv天堂网|