この問題を解決するために、STテーブルRMQ

RMQRMQ問題
RMQ(範囲最小クエリ)RMQ(範囲最小クエリ)、 問題の最小範囲。特定のパフォーマンスは、問題のクラスについてです。

NN所与素子アレイA1、A2、...、ANA1、A2、...、アン、分を解く(L、R)分(L、R):計算みんみん{アル、アル+ 1、...、アラル、アル+ 1、...、アルゴン}

比較的迅速かつ簡単スパース-TableSparse-表アルゴリズムTarjanTarjan、頭字語STSTテーブルで多くの問題RMQRMQソリューションは、あります。

疎TableSparse-表は、2つの部分の前処理によって乗算アルゴリズム、アルゴリズムとクエリを考え、それぞれについて説明します。

前処理

私たちは、IIの開始からD(i、j)はD(i、j)は、2j2j要素内の期間の最小長をしましょう。乗算思想D(I、J-1)D(I、J-1)によって、D(i、j)は、D(i、j)は及びD(I + 2J-1、J-1)D(I + 2J-1、J-1)転写を得るために、2つの数の具体的な動作みんみんを取られます。

学生とのいかなる接触は、このステップは、具体的に説明、理解することは少し難しい表し思ったん乗算してもよいです。

D(i、j)は、D(i、j)は最小期間II 2j2j要素の開始からの長さを示し、右端部があるI + 2J-1I + 2J-1。

D(I、J-1)D(I、J-1)は、右端部、最小期間II要素の開始から2J-12J-1の長さを表し、iが+ 2J-1-1i +です2J-1-1。

D(I + 2J-1、J-1)D(I + 2J-1、J-1)元素の周期を表すI長先頭+ 2J-1I + 2J-1から2J-12J-1であります最小値は、右端部が、I + 2J-1 + 2J-1-1 = I + 2J-1I + 2J-1 + 2J-1-1 = I + 2J-1です。

今明らかに、[Iは、Iが+ 2J-1] [iが、I + 2J-1]このセクションでは、[I、I + 2J-1-1] [I、I + 2J-1に分割され-1]及び[I + 2J-1、I + 2J-1] [I + 2J-1、I + 2J-1]間隔二つは、漏れないので、この操作が可能です。

前処理時間の複雑さはO(nlog2n)O(nlog2⁡n)です。

お問い合わせ

今説明した前処理では、クエリの一部は困難ではない私たちが作る最大の整数2k≤R-L +12k≤R-L + 1のを満たすために株式会社と思うようにすべきです。これは、K = log2R-L + 1K =log2⁡R-L + 1が知られています。LLは、カバー[L、R]、[L、R]にマージされる2つの長さ2k2kのRR間隔の最後に開始を置きます。それが最低限の範囲を求めているので、要素は何の問題も繰り返されていないが計算されます。

则クエリ(L、R)=分(D(L、K)、D(R-2K + 1、k))をクエリ(L、R)=分(D(L、K)、D(R-2K + 1、K))。

クエリ時間の複雑さはO(1)O(1)です。

このように、アルゴリズムのスパース・TableSparse-表のアイデアは、単純な、良い書き込みは、ある好ましいアルゴリズムのRMQRMQの問題です。

POWコンクリートの実現が、それぞれ、なく、少なくとも(2、x)はPOW(2、x)が算出される2x2xは非常に時間がかかります。バイナリを使用して、内部コンピュータに、我々は、(1 << X)(1 << X)で2x2x表現することができます。

CodeCodeの
名前空間RMQ {
INITを無効(INT N-){
(intはI = 1。私は<= N-であり; Iは++)のために、Dは[I]が[0] = [I]、
のために(INT J = 1、。。(1 << J )<= N; J ++)
のための(INT I = 1、I +(1 << J) - 1 <= N;。。。私は)++
D [I] [J] =分(D [I] [Jは、 - 1] ;) - [1 J] - Dは、[Iは、(1)<< 1(J)+]
}
クエリ(L int型、INT R&LT){int型
。INT K = IOG2(R&LT - 1 + L)を、
戻り分(D [ L] [K]、D [R&LT - (<< K. 1)+ 1] [K]);
}
}
----------------
著作権:これはCSDNブロガー「Nekroz_のオリジナルの記事、CC 4.0 BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいに従ってください。
オリジナルリンクします。https://blog.csdn.net/diogenes_/article/details/80794838

おすすめ

転載: www.cnblogs.com/aprincess/p/11621523.html