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

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>
            欧美亚洲在线| 国产欧美精品| 亚洲一区免费视频| 在线亚洲激情| 亚洲视频欧洲视频| 性欧美18~19sex高清播放| 欧美一区二区免费| 欧美专区亚洲专区| 免费看成人av| 国产精品成人观看视频免费| 国产精品乱码一区二区三区| 国产永久精品大片wwwapp| 亚洲第一久久影院| 亚洲视频在线观看免费| 久久久精品一区| 欧美黄色免费网站| 亚洲一区二区三区777| 久久九九免费视频| 欧美三级第一页| 国产综合色在线| 日韩网站在线看片你懂的| 亚洲欧美一区二区三区在线| 久久综合一区| 一区二区三区四区五区视频| 久久九九免费| 国产精品高潮呻吟久久| 在线欧美日韩精品| 午夜精品在线看| 最新亚洲激情| 亚洲欧美一区二区视频| 欧美电影免费观看网站| 国产亚洲aⅴaaaaaa毛片| 一区二区精品| 亚洲大胆在线| 久久九九精品99国产精品| 国产精品你懂的在线欣赏| 日韩视频免费在线| 免费在线亚洲欧美| 欧美亚洲尤物久久| 国产精品一区二区男女羞羞无遮挡| 亚洲精品护士| 午夜精品视频在线观看| 美女图片一区二区| 亚洲欧美日韩一区| 欧美色中文字幕| 亚洲另类自拍| 免费亚洲电影在线| 欧美一区二区视频免费观看| 欧美视频四区| 亚洲最黄网站| 亚洲人成在线观看网站高清| 久久婷婷av| 黄色av成人| 久久综合婷婷| 久久电影一区| 国产一区二区观看| 欧美一区二区日韩| 午夜亚洲福利在线老司机| 国产精品久久久| 亚洲女ⅴideoshd黑人| 亚洲视频欧美在线| 国产精品久久婷婷六月丁香| 亚洲婷婷在线| 一区二区三区高清在线观看| 欧美日韩另类字幕中文| 在线视频欧美精品| 一区二区三区日韩欧美精品| 欧美午夜女人视频在线| 亚洲欧美日韩国产综合| 亚洲免费一级电影| 国产一区日韩二区欧美三区| 久久亚洲色图| 久久亚洲影院| 亚洲精品一区在线| 亚洲看片一区| 欧美午夜一区二区三区免费大片| 亚洲网在线观看| 午夜一区二区三区在线观看| 狠狠综合久久av一区二区老牛| 欧美大成色www永久网站婷| 欧美激情免费观看| 亚洲在线中文字幕| 欧美在线在线| 最新日韩精品| 亚洲永久精品大片| 亚洲第一色在线| 亚洲作爱视频| 好吊妞**欧美| 亚洲乱码国产乱码精品精可以看| 国产精品久久久久一区二区| 久久久久网址| 欧美精品麻豆| 久久久www| 欧美激情国产精品| 久久国产精品免费一区| 欧美激情精品久久久久久免费印度 | 亚洲性视频网址| 亚洲午夜国产一区99re久久 | 一区二区三区av| 在线亚洲自拍| 久久久精品国产免大香伊| 女主播福利一区| 欧美一区二区三区电影在线观看| 久久久久一区二区三区| 在线综合亚洲欧美在线视频| 欧美亚洲一区在线| 99伊人成综合| 久久久久免费观看| 亚洲免费在线| 欧美成人一区二区| 久久久精品国产免大香伊| 欧美三区视频| 亚洲国产欧美另类丝袜| 国产真实久久| 亚洲一级特黄| 中国女人久久久| 免费不卡中文字幕视频| 久久国产精品网站| 国产精品青草综合久久久久99 | 亚洲欧美国产日韩中文字幕| 亚洲伦理在线免费看| 久久久亚洲人| 久久手机免费观看| 国产日产欧美a一级在线| 正在播放欧美视频| 在线一区二区日韩| 欧美激情一区二区三区不卡| 免费精品视频| 一区二区在线视频播放| 亚洲免费在线电影| 小黄鸭精品aⅴ导航网站入口| 欧美日韩视频在线一区二区观看视频| 欧美二区在线播放| 亚洲国产精品黑人久久久| 久久免费视频在线观看| 欧美3dxxxxhd| 亚洲高清在线| 欧美成人免费在线视频| 亚洲国产片色| 99亚洲一区二区| 国产精品扒开腿做爽爽爽软件| 日韩视频免费在线观看| 亚洲小视频在线观看| 国产精品久久久久久久久免费| 一区二区三区回区在观看免费视频| 中文一区二区| 国产精品久久久久免费a∨| 国产精品99久久久久久久女警| 亚洲一区二区精品在线观看| 国产精品高潮呻吟久久av无限| 亚洲小视频在线观看| 久久爱另类一区二区小说| 黑人一区二区| 欧美激情一二三区| 亚洲永久免费精品| 麻豆av一区二区三区久久| 亚洲激情精品| 欧美性片在线观看| 久久国产精品电影| 91久久综合| 午夜精品区一区二区三| 国内精品一区二区三区| 免费观看一级特黄欧美大片| 日韩视频一区二区三区在线播放免费观看 | 蜜桃av噜噜一区| 欧美亚洲三区| 久久久久久久999| 国产精品蜜臀在线观看| 在线观看视频一区二区欧美日韩| 亚洲激情另类| 久久成人在线| 亚洲一区999| 国产一区二区三区观看| 国产精品久久久久久久久久直播| 9l国产精品久久久久麻豆| 欧美午夜国产| 久久久蜜臀国产一区二区| 亚洲精品一区二区三区99| 亚洲欧美日韩电影| 亚洲第一福利社区| 国产精品美女www爽爽爽视频| 久久久之久亚州精品露出| 亚洲日本一区二区三区| 久久国产精品一区二区| 夜夜躁日日躁狠狠久久88av| 国产乱子伦一区二区三区国色天香 | 欧美色欧美亚洲另类二区| 久久精品在这里| 亚洲一区二区三区精品在线| 欧美黄色一级视频| 久久精品国产99| 亚洲综合大片69999| 亚洲精品久久久久中文字幕欢迎你| 国产精品二区三区四区| 欧美激情国产日韩| 麻豆精品在线视频| 久久成人av少妇免费| 亚洲伊人久久综合| 日韩亚洲国产欧美| 亚洲精品久久久蜜桃|