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

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>
            欧美一区1区三区3区公司| 欧美一区二区视频在线观看| 欧美福利视频在线观看| 美女黄毛**国产精品啪啪| 亚洲国产日韩欧美在线动漫| 欧美高清在线精品一区| 欧美成人中文| 亚洲视频一区在线观看| 亚洲午夜av在线| 国产一区二区丝袜高跟鞋图片| 久久久久久穴| 欧美a级一区二区| 亚洲视频在线观看一区| 西瓜成人精品人成网站| 亚洲国产精品成人久久综合一区| 亚洲国产美女| 欧美午夜视频| 久久人人爽人人爽爽久久| 蜜桃久久精品一区二区| 亚洲男人av电影| 久久一区二区三区超碰国产精品| 日韩午夜在线| 欧美在线影院| 99亚洲一区二区| 欧美一区网站| 亚洲精品一区二区三区在线观看| 亚洲视频观看| 亚洲国产精品传媒在线观看| 制服丝袜激情欧洲亚洲| 亚洲大胆美女视频| 亚洲视频一区二区| 亚洲精品一二| 久久精品人人做人人综合| 一区二区欧美日韩| 久久久中精品2020中文| 午夜精品免费在线| 欧美激情亚洲另类| 免费久久99精品国产自| 国产精品久久久久7777婷婷| 欧美大片一区二区| 国内在线观看一区二区三区| 一区二区三区日韩| 日韩一区二区高清| 久久一区二区三区四区五区| 性欧美8khd高清极品| 欧美乱大交xxxxx| 欧美成人免费va影院高清| 国产日韩精品在线| 亚洲视频在线观看网站| 日韩亚洲欧美综合| 麻豆成人在线| 欧美成人一区二免费视频软件| 国产伦精品一区二区三区视频孕妇 | 开心色5月久久精品| 欧美一区二区三区免费看 | 香蕉久久a毛片| 亚洲综合日韩| 欧美日韩伊人| 一区二区免费在线播放| 夜夜躁日日躁狠狠久久88av| 免费在线观看一区二区| 欧美国产极速在线| 伊人久久久大香线蕉综合直播 | 亚洲精品视频在线| 日韩视频在线观看| 欧美激情a∨在线视频播放| 免费观看在线综合色| 很黄很黄激情成人| 久久九九免费| 欧美大胆人体视频| 91久久精品国产91久久性色tv| 久久全国免费视频| 欧美激情国产日韩| 亚洲精品一区二区三区蜜桃久| 欧美成人中文| 亚洲人成亚洲人成在线观看| 亚洲精品免费在线播放| 欧美乱人伦中文字幕在线| 亚洲精品一区二区三区婷婷月| 一区二区日韩| 国产精品一区2区| 欧美在线观看www| 免费永久网站黄欧美| 亚洲精品色婷婷福利天堂| 欧美成人第一页| 一本色道久久88综合亚洲精品ⅰ| 亚洲一区二区在线| 国产又爽又黄的激情精品视频 | 午夜精品久久久久久久99热浪潮| 久久国产精品黑丝| 亚洲黄色性网站| 欧美日韩视频一区二区| 亚洲欧美日韩成人高清在线一区| 久久黄色级2电影| 亚洲人成亚洲人成在线观看| 欧美日韩视频一区二区| 欧美一区国产在线| 亚洲人成网站色ww在线| 久久xxxx精品视频| 亚洲精品女av网站| 国产欧美精品在线| 欧美电影美腿模特1979在线看| 亚洲精品综合| 久久亚洲精品中文字幕冲田杏梨| 亚洲高清视频在线| 国产精品美女在线| 欧美福利视频在线| 欧美一级网站| 亚洲免费观看在线视频| 久热精品视频在线观看一区| 中文一区二区| 亚洲国产第一| 国产一区二区三区在线观看网站 | 精品动漫3d一区二区三区| 欧美高清在线| 久久久国产视频91| 在线视频你懂得一区| 欧美成人激情视频| 久久久久久久久久久久久女国产乱| 91久久精品美女高潮| 国产亚洲午夜| 国产精品日韩欧美一区| 欧美精品综合| 免费在线国产精品| 久久久久女教师免费一区| 亚洲男人第一av网站| 亚洲精品中文字幕有码专区| 欧美成人官网二区| 久久综合一区| 久久精品亚洲乱码伦伦中文| 亚洲一区二区三区影院| 亚洲剧情一区二区| 亚洲精品久久久久久久久| 今天的高清视频免费播放成人| 国产精品一国产精品k频道56| 欧美精品二区| 欧美激情aaaa| 欧美精品在线一区| 欧美国产第一页| 欧美成人精品| 免费一级欧美片在线观看| 久久亚洲精品伦理| 久久蜜桃资源一区二区老牛| 久久gogo国模裸体人体| 欧美伊人久久| 久久久久久久91| 久久女同互慰一区二区三区| 久久九九电影| 久久嫩草精品久久久久| 久久这里有精品15一区二区三区| 久久成人国产精品| 久久嫩草精品久久久精品| 久久综合电影| 欧美剧在线观看| 欧美三区在线观看| 国产精品久久久久久久久借妻| 国产精品yjizz| 国产农村妇女毛片精品久久麻豆| 国产欧美日韩精品一区| 国产在线视频欧美一区二区三区| 国产主播精品在线| 亚洲国产精品一区| 中文在线资源观看视频网站免费不卡| 一区二区欧美日韩| 香蕉精品999视频一区二区| 久久成年人视频| 欧美激情综合色| 一区二区三区欧美在线| 欧美一级片在线播放| 久热爱精品视频线路一| 欧美日韩国产bt| 国产亚洲电影| 亚洲精品影院| 欧美在线你懂的| 欧美11—12娇小xxxx| 亚洲裸体俱乐部裸体舞表演av| 亚洲综合电影| 欧美ed2k| 国产主播喷水一区二区| 亚洲伦理网站| 久久精品导航| 日韩手机在线导航| 久久精品三级| 国产精品国产三级国产专播精品人 | 99re热这里只有精品免费视频| 亚洲一级在线| 欧美好骚综合网| 亚洲天堂久久| 欧美成人69| 精品福利免费观看| 亚洲永久网站| 亚洲高清毛片| 久久九九热re6这里有精品| 欧美亚男人的天堂| 亚洲国产一区二区精品专区| 性欧美8khd高清极品| 亚洲电影观看| 久久久久国色av免费看影院| 国产精品美女一区二区在线观看| 亚洲高清一区二区三区|