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

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


導航

<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>
            久久激情五月婷婷| 欧美成人一区二区| 国产精品99久久久久久久女警| 欧美阿v一级看视频| 亚洲区欧美区| 亚洲精品美女在线观看播放| 欧美国产在线观看| 亚洲小视频在线观看| 亚洲无线一线二线三线区别av| 国产精品视频一| 久久一区二区三区四区五区| 久久综合伊人77777| 日韩系列欧美系列| 亚洲欧美日本日韩| 在线观看国产一区二区| 亚洲国产经典视频| 国产精品黄色| 美女国产一区| 欧美涩涩视频| 老司机午夜精品| 欧美日韩国产91| 久久成人在线| 欧美激情综合色综合啪啪| 亚洲自拍偷拍福利| 久久精品99久久香蕉国产色戒| 亚洲精品美女在线| 亚洲欧美日韩一区二区在线 | 国产精品亚洲综合久久| 久久全球大尺度高清视频| 欧美精品日韩精品| 久久精品国产99精品国产亚洲性色 | 亚洲一区免费观看| 在线观看91精品国产麻豆| 日韩一级不卡| 亚洲第一福利在线观看| 亚洲中字在线| 日韩午夜av在线| 久久久精彩视频| 午夜久久久久| 欧美激情亚洲国产| 美女日韩在线中文字幕| 国产精品久久久对白| 亚洲国产精品电影| 在线成人中文字幕| 亚洲欧美成人网| 亚洲午夜高清视频| 欧美成人免费在线视频| 久久久中精品2020中文| 国产精品尤物福利片在线观看| 亚洲国产精选| 亚洲日本欧美在线| 久久人人爽人人| 久久免费高清| 国产精品伦一区| 亚洲久久视频| 夜夜精品视频一区二区| 欧美a级一区| 欧美电影打屁股sp| 国内伊人久久久久久网站视频| 亚洲视频导航| 亚洲影视九九影院在线观看| 欧美日韩视频不卡| 日韩午夜三级在线| 亚洲无线观看| 欧美日韩国产综合视频在线观看 | 亚洲国产高清高潮精品美女| 狠狠干狠狠久久| 久久xxxx| 欧美 日韩 国产 一区| 1204国产成人精品视频| 久久久一区二区| 欧美黄色视屏| 亚洲精选一区二区| 欧美日韩一区二区高清| 一区二区三区日韩精品视频| 亚洲一区二区三区四区中文 | 久久亚洲影院| 亚洲国产成人在线| 在线视频精品一区| 国产精品v欧美精品v日本精品动漫| 夜夜狂射影院欧美极品| 亚洲欧美日韩精品久久亚洲区 | 国产精品超碰97尤物18| 国产精品99久久久久久www| 亚洲欧美在线一区| 国产三区精品| 久久亚洲色图| 日韩小视频在线观看专区| 亚洲一区二区欧美| 国产亚洲欧美中文| 久久综合999| 在线亚洲欧美| 久久久亚洲精品一区二区三区| 亚洲福利视频一区二区| 欧美日本一区| 久久国产精品99国产精| 亚洲高清在线视频| 午夜精品一区二区在线观看| 在线观看不卡av| 欧美午夜精品一区二区三区| 久久激情视频| 99视频精品全国免费| 久久久综合精品| 中文亚洲免费| 亚洲国产精品va在看黑人| 欧美日韩少妇| 美女国产一区| 午夜久久tv| 亚洲精选在线| 欧美成人免费在线| 性久久久久久久| 夜夜躁日日躁狠狠久久88av| 国产尤物精品| 国产精品美女xx| 欧美波霸影院| 久久伊人精品天天| 午夜精品久久久久久久99热浪潮 | 亚洲肉体裸体xxxx137| 久久久久国产精品午夜一区| 在线视频亚洲欧美| 亚洲国产日韩综合一区| 国产伦精品一区| 欧美视频国产精品| 免费日韩成人| 久久久欧美精品| 欧美在线不卡| 亚洲免费一级电影| 亚洲一级在线观看| 99精品国产一区二区青青牛奶| 欧美大尺度在线| 久久亚洲精品视频| 久久久综合视频| 久久久久综合网| 欧美主播一区二区三区美女 久久精品人| 一区二区三区高清在线| 亚洲人成网站在线观看播放| 在线视频成人| 黄色日韩网站| 在线看视频不卡| 在线日韩日本国产亚洲| 在线观看日韩| 亚洲国产婷婷综合在线精品| 亚洲电影中文字幕| 亚洲激情成人在线| 亚洲国产片色| 亚洲麻豆视频| 一区二区三区四区精品| 在线一区二区三区四区| 亚洲一区999| 亚洲欧美日韩精品在线| 亚洲免费视频观看| 欧美一区二区日韩| 久久久久久亚洲综合影院红桃 | 美日韩丰满少妇在线观看| 久久人人97超碰精品888 | 亚洲精品日产精品乱码不卡| 亚洲欧洲精品一区二区精品久久久| 在线看视频不卡| 91久久精品国产91久久性色tv| 91久久中文字幕| 99视频一区| 性做久久久久久久免费看| 久久国产综合精品| 免费在线观看日韩欧美| 亚洲电影自拍| 一区二区三区 在线观看视频| 亚洲在线视频免费观看| 久久精彩免费视频| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美国产第二页| 国产精品极品美女粉嫩高清在线| 国产欧美欧美| 91久久精品一区| 午夜精品美女久久久久av福利| 久久裸体艺术| 亚洲美女av在线播放| 亚洲一区在线播放| 久久中文在线| 国产精品免费观看视频| 亚洲高清毛片| 亚洲综合社区| 欧美高清不卡| 亚洲欧美成人一区二区在线电影 | 欧美刺激性大交免费视频| 国产精品激情av在线播放| 悠悠资源网亚洲青| 亚洲影视综合| 欧美激情第一页xxx| 亚洲伊人第一页| 欧美激情1区2区| 国产日韩在线看| 亚洲一区二区三区在线视频| 麻豆视频一区二区| 亚洲午夜一区二区三区| 蜜臀av一级做a爰片久久| 国产精品视频久久| 一本色道久久综合亚洲精品婷婷 | 亚洲一区二区免费| 男女精品网站| 国产在线观看一区|