日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

RMQ求区间最值 nlog(n)

發布時間:2024/7/19 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RMQ求区间最值 nlog(n) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載于:http://blog.csdn.net/xuzengqiang/article/details/7350465

RMQ算法全稱為(Range?Minimum/Maximum?Query)意思是給你一個長度為n的數組A,求出給定區間的最值的下標。當然我們可以采用枚舉,但是我們也可以使用線段樹來優化,復雜度為(nlogn),但是最好的辦法是采用Sparse_Table算法,簡稱ST算法。他能在進行(nlogn)的預處理后達到n(1)的效率。下面來分析下最大值和最小值,都要用到DP的思想。

最小值(Mininun):我們可以用F(i,j)表示區間[i,i+2^j-1]間的最小值。我們可以開辟數組來保存F(i,j)的值,例如:F(2,4)就是保存區間[2,2+2^4-1]=[2,17]的最小值。那么F(i,0)的值是確定的,就為i這個位置所指的元素值,這時我們可以把區間[i,i+2^j-1]平均分為兩個區間,因為j>=1的時候該區間的長度始終為偶數,可以分為區間[i,i+2^(j-1)-1]和區間[i+2^(j-1)-1,i+2^j-1],即取兩個長度為2^(j-1)的塊取代和更新長度為2^j的塊,那么最小值就是這兩個區間的最小值的最小值,動態規劃為:F[i,j]=min(F[i,j-1],F[i+2^(j-1),j-1]).同理:最大值就是F[i,j]=max(F[i,j-1],F[i+2^(j-1),j-1]).

現在求出了F[i,j]之后又是怎樣求出最大值或者最小值的,怎么轉換為o(1)這種算法的~這就是ST算法:

這個時候詢問時只要取k=ln(j-i+1)/ln2即可,那么可以令A為i到2^k的塊,和B為到2^k結束的長度為2^k的塊;那么A,B都是區間[i,j]的子區間,所以即求A區間的最小值和B區間的最小值的最小值。這個時候動態規劃為:RMQ(i,j)=min(F[i,k],F[j-2^k+1,k]);

log2的求法:

Log[0] = -1; for(int i = 1;i <M;i++)Log[i] = ((i&(i-1)) == 0)?Log[i-1]+1:Log[i-1];RMQ:

void RMQ(int n) {int i,j;int m=Log[n];for(i=1;i<=n;i++)dp_min[i][0]=dp_max[i][0]=dis[i];//dis代表原數列for(j=1;j<=m;j++){for(i=1;i<=n+1-(1<<j);i++){dp_max[i][j]=max(dp_max[i][j-1],dp_max[i+(1<<(j-1))][j-1]);dp_min[i][j]=min(dp_min[i][j-1],dp_min[i+(1<<(j-1))][j-1]);}} }最小值:int lcp(int x,int y) {int m=Log[y-x+1];return min(dp_min[x][m],dp_min[y+1-(1<<m)][m]); }最大值

int lcp(int x,int y) {int m=Log[y-x+1];return max(dp_max[x][m],dp_max[y+1-(1<<m)][m]); }



轉載于:https://www.cnblogs.com/mypsq/p/4348112.html

總結

以上是生活随笔為你收集整理的RMQ求区间最值 nlog(n)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 香蕉视频在线观看网站 | 中文精品久久 | 内射后入在线观看一区 | 免费在线播放毛片 | 国产日产欧美一区二区 | 草草影院在线播放 | 亚洲激情文学 | 色老汉av一区二区三区 | 久久黄色av| 伊人久久精品一区二区三区 | 欧美a级片视频 | 一级片在线观看视频 | 亚洲一区二区高清 | www九九九| 黄色片免费 | 色丁香婷婷综合久久 | 黄色av网站在线看 | 日本精品免费在线观看 | 欧美日韩一区二区视频在线观看 | 黄色高清在线观看 | 国产精品国产三级国产 | 男人天堂1024 | 欧美日韩在线一区二区 | 亚欧洲精品视频在线观看 | 天堂网2014av| exo妈妈mv在线播放高清免费 | 快色网站 | 久章草在线观看 | 日日摸夜夜添狠狠添久久精品成人 | 在线观看www. | 手机看片1024久久 | 亚洲欧美一区二区精品久久久 | www视频在线观看免费 | 日本天堂免费a | 麻豆久久久9性大片 | www.伊人 | 天堂成人在线观看 | 在线免费观看a视频 | 97久久精品 | 无码精品黑人一区二区三区 | 高跟鞋丝袜猛烈xxxx | 成人午夜sm精品久久久久久久 | 一二区在线观看 | 亚洲中文一区二区 | 黄色a视频 | 韩日视频在线观看 | 女生高潮视频在线观看 | 驯服少爷漫画免费观看下拉式漫画 | 欧美嘿咻视频 | 双性人妖互交localhost | 亚洲欧洲日韩国产 | 少妇被黑人到高潮喷出白浆 | 免费人成视频在线 | 午夜av福利| 亚洲免费av电影 | 活大器粗np高h一女多夫 | 国产热视频| 嫩草av在线 | 男女日批在线观看 | 国产美女极度色诱视频www | 欧美日韩午夜精品 | 久久久久99精品成人片我成大片 | 关之琳三级全黄做爰在线观看 | 人成在线| 色狠狠干 | 天天操天天操天天操 | 午夜视频大全 | 韩国一级淫一片免费放 | 99精品国自产在线 | 澳门黄色网 | 免费无码肉片在线观看 | 日韩一级生活片 | 亚洲国产aaa | 91免费网站 | 在线播放精品 | 色小说在线观看 | 免费看h网站 | 91麻豆一区二区三区 | 综合影院 | 天天操天天射天天舔 | 少妇做爰k8经典 | 亚洲国产欧美另类 | 青青一区二区 | 91免费黄色 | 综合国产一区 | 欧美zzz物交 | 超碰碰碰 | 免费处女在线破视频 | 91精品国产综合久久福利软件 | 99激情网| 欧美一级日韩一级 | 激情播播网 | 乳色吐息免费看 | 日韩欧美资源 | 久久精品97 | 伊人久久在线 | 最新久久 | 2020av视频| 色欲人妻综合网 |