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

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   管理


導航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

統計

常用鏈接

留言簿(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>
            亚洲少妇自拍| 欧美日韩精品久久| 欧美成人高清| 亚洲国产成人午夜在线一区| 亚洲欧美国产毛片在线| 国产精品久久久久毛片软件| 久久深夜福利| 欧美亚洲在线视频| 在线亚洲欧美视频| 麻豆成人小视频| 久久gogo国模啪啪人体图| 亚洲精品国产欧美| 国产精品vvv| 在线视频欧美日韩| 久久久久综合| 亚洲少妇最新在线视频| 亚洲欧美日韩成人高清在线一区| 亚洲免费一区二区| 欧美日韩成人综合| 在线午夜精品自拍| 久久岛国电影| 国产啪精品视频| 欧美一区网站| 欧美福利电影网| 国产一区二区三区四区三区四| 亚洲少妇在线| 亚洲日本欧美| 欧美大秀在线观看| 美女视频黄免费的久久| 在线综合+亚洲+欧美中文字幕| 欧美日本一区| 亚洲欧洲三级| 亚洲一区二区三区四区在线观看 | 欧美日韩精品| 日韩一级大片| 亚洲精品乱码久久久久久按摩观| 欧美a一区二区| 欧美伊人精品成人久久综合97| 亚欧美中日韩视频| 日韩视频免费观看高清在线视频| 亚洲电影第三页| 国产精品视频精品视频| 亚洲天堂网站在线观看视频| 老司机一区二区三区| 一区二区三区视频在线播放| 国产精品一二三视频| 欧美韩日一区二区| 一区二区三区产品免费精品久久75| 亚洲精品国偷自产在线99热| 亚洲激情欧美| 在线播放豆国产99亚洲| 欧美日本国产| 亚洲欧美日韩精品在线| 亚洲成人直播| 国产精品国产精品国产专区不蜜| 国产精品视频你懂的| 久久精精品视频| 一二三四社区欧美黄| 亚洲视频欧美在线| 亚洲图片欧美午夜| 农村妇女精品| 一本色道88久久加勒比精品 | 美女视频黄 久久| 国产精品超碰97尤物18| 亚洲东热激情| 欧美一区二区三区在线视频 | 欧美一区二区观看视频| 欧美日韩情趣电影| 久久精品一本久久99精品| 久久亚洲综合色| 蜜桃久久av一区| 亚洲欧美国产va在线影院| 亚洲欧洲日产国产网站| 一本高清dvd不卡在线观看| 亚洲欧美日韩中文播放| 中文欧美日韩| 欧美三区免费完整视频在线观看| 亚洲一二三区视频在线观看| 亚洲永久在线观看| 亚洲男人av电影| 久久成人综合视频| 久久九九久久九九| 久久久91精品| 国产欧美精品一区| 久久字幕精品一区| 欧美精品v日韩精品v韩国精品v| 国产伦精品一区二区三| 性伦欧美刺激片在线观看| 久热爱精品视频线路一| 欧美日韩蜜桃| 国模精品一区二区三区| 久久伊人精品天天| 欧美黄色大片网站| 久久免费视频一区| 欧美午夜国产| 国产一区二区成人| 欧美一级在线播放| 亚洲理论在线观看| 久久久久久久久久码影片| 欧美成人午夜激情| 在线免费观看日本欧美| 国产精品高潮呻吟久久av无限| 欧美三级特黄| 在线观看日韩国产| 久久成人综合网| 欧美日韩精品是欧美日韩精品| 久久一区二区三区超碰国产精品| 欧美精品尤物在线| 极品尤物av久久免费看| 一卡二卡3卡四卡高清精品视频 | 欧美涩涩视频| 亚洲福利视频一区二区| 亚洲一区二区在线观看视频| 亚洲精品在线三区| 欧美一区二区性| 牛人盗摄一区二区三区视频| 国产日产亚洲精品| 亚洲影院高清在线| 国产精品久久久久久一区二区三区| 欧美黄色免费| 久久精品国产99国产精品澳门| 欧美日韩精品中文字幕| 欧美激情一区在线观看| 欧美日韩mv| 欧美日韩国产丝袜另类| 午夜国产精品视频| 久久综合99re88久久爱| 亚洲成色www久久网站| 久久九九久精品国产免费直播| 一区二区三区久久久| 久久av在线| 久久av一区二区| 欧美日韩国产成人在线91| 欧美亚洲色图校园春色| 亚洲综合激情| 国产精品一卡二| 午夜精品久久久久久久99樱桃| 亚洲国产日韩一级| 尤物精品在线| 美女视频黄a大片欧美| 最新日韩中文字幕| 欧美在线视频免费| 西西人体一区二区| 亚洲国产精品一区二区第四页av| 亚洲日韩欧美一区二区在线| 免费不卡中文字幕视频| 欧美激情91| 99精品欧美一区二区三区综合在线| 欧美日韩国产999| 亚洲视频精品| 欧美日韩另类一区| 久久色中文字幕| 亚洲无限av看| 欧美日本国产一区| 欧美影院在线| 亚洲私人影院在线观看| 欧美在线观看你懂的| 99这里只有久久精品视频| 日韩一级精品| 久久久久国产精品午夜一区| 蜜臀久久99精品久久久久久9| 欧美一区二区视频在线| 欧美福利电影在线观看| 免费看亚洲片| 午夜精品久久久久久久蜜桃app | 美日韩在线观看| 性色av一区二区三区红粉影视| 99ri日韩精品视频| 午夜精品视频在线观看| 欧美不卡三区| 久久久人成影片一区二区三区 | 日韩视频永久免费| 蜜桃av一区二区| 国产日韩欧美一区二区三区四区 | 欧美高清在线| 美女网站久久| 亚洲第一视频| 午夜欧美大尺度福利影院在线看| 卡通动漫国产精品| 亚洲在线观看视频| 欧美精品一区二区三区高清aⅴ| 久久久精品国产免大香伊| 国产精品入口麻豆原神| 日韩一级黄色av| 日韩亚洲欧美在线观看| 欧美高清视频一二三区| 美女露胸一区二区三区| 最新日韩av| 永久91嫩草亚洲精品人人| 欧美精品一区二区在线播放| 99精品热视频只有精品10| 欧美一区二区三区免费视频| 国产精品家庭影院| 欧美黄色小视频| 欧美亚洲尤物久久| 亚洲人成在线观看| 久久久999| 亚洲亚洲精品在线观看| 国产亚洲综合精品| 欧美激情国产精品|