フェンウィックツリーはノート(イデオロギー的理解を)取り戻します

それとも検査はそれをするときだと思います。私がテストしていませんでしたが。

テストは、しないように波を検討する際に、パニックの私の恐怖を乾燥させるために、最後の質問テンプレート道路テストKMP 9分。

その実装を学ぶために、自分の考えを理解することは、その目的、原則を預言者と、

目的:間隔の変更をサポートし、間隔及び(接頭辞)、間隔情報を維持するために。すなわち、ダイナミックレンジ情報を維持すること、です。

大きなアイデアが思考で考えを簡素化し、アルゴリズムの最適化のアイデア、思考変換以外の何ものでもありません、アイデアを貢献します。(クラップスで...個人的な意見)、細分化、そしてあまりにも。

そして、2進接頭辞木や思想に基づき、これは、最適化のアイデアです。

**非常に質問2(ギャングスターは自動的にスキップ)すること:なぜこの事フェンウィックの木があり、それは良いことだ理由ですか?それは、プレフィックスと、それの良いよりも、どこにありますか?

これはおそらく、フェンウィックツリーは、それを生産についての質問ですか?(YY)はフェンウィックの木はおそらく、同じ共有のアイデアを使用して、洗練されたアルゴリズムでのみ場合、クエリ操作を考える実際には、直接プレフィックスとO1を比較することができませんでした

優秀なそれをログに記録?状態が動的になった後ただし、(つまり、変更操作がある)、接頭辞および修正に、ほぼ萎凋。フェンウィックツリーは均等に、Olognを変更し、これはおそらく最高の場所である共有しました。

原理は、その後、の目的で、私たちが望むことは、ダイナミックレンジの情報であり、かつ配列は避けることができない、と理由プレフィックスとO1変化にチェック,,,ので添字の次々です。

私たちは、共有を検討する必要が均等に均等に共有方法を、次の規格に大騒ぎ?今、一つ一つが1であり、nは、我々は、各クエリの修飾のための(幾分パーティション思想)の次標準片に踊り、等しい共有を達成することができるであろうなります。

しかし、両方が効率的かつ高いブロックに分割作る方法を、私たちは次のブロックの配列の添字がそれである維持するために持っているものを知っています。バイナリ,,非常に強いです。

その後、この問題の数に従事されている問題の添字、および数、インターバルので、ログは、最適化が,,,,バイナリものに加えて、最大に連絡しますか?

バイナリへの数のバイナリ特性を見て、その後、1の位の大きさは数に寄与することを示している,,,,と我々はまた、唯一のクエリの修正とその貢献のためにそれを行うこの機能の配列のインデックスを使用していませんまたは範囲の配列の添字についての答えは、それを操作するには?しかし、1,0の下で一定の規格にはないので、この事の二進数字があります。それは我々が高効率にそれを作る方法です?我々は、設定値のそれぞれとの間で分配するので、1に対応するビットの2進数でマークされていることができ、その後、その間隔を分割することは、乾燥の長さに応じたビット数に寄与することができます,,,それを言うには少しナンセンスは非常に明確ではありません。7例です

バイナリ情報の使用は、長さおよび添え字を有するよう00111,4 21(2 ^ 2 ^ 0,2 ^ 1,2)バイナリで、我々は、1-7 2,4間隔の長さに置きますその間隔の長さがそれを分割方法1,2,4 ,,?

1-12-34-7または1-45-67-7それですか?バイナリの手段によって達成することができるか考えてみましょう。バイナリ思考の観点からは、ビット数を表し、このセクションの情報に貢献していきますプラスがあり、一人一人を使用しています。そして、関係Lowbitのlowbitは7,7- lowbit(7)のための1へのすべて等しいバイナリビットの整数を見つけることができる - > 6 6-> lowbit()= 2 - > 4-> lowbit = 4を、その二つ目は、明らかに、より明確です。

インターバルの良い点は、その後の進路、我々は[x]は、保守情報の間隔cは,,,,その後、木YYを使用検討しているので、自分の情報を保持することは明らかである各ポイントのツリーを備えています。

だから我々は、相補の使用に関する情報を探しているとき、彼らは、自分の管轄権を持っていることを確実にするためにC [x]はストレージ[X-lowbit(X)+ 1、x]の情報は、情報の完全な範囲を取得する(しかし、少し不思議なアイデアを使用することができましょうそのドライアルゴリズムは、そのような気にしないで間違っているようにMoのチームとしてCDQパーティション、...)として、強いです...

抽象:(自然ツリーアレイ)
各内部ノードc [x]は、そのサブツリーのルートと、すべてのリーフノードに格納されています。

C [x]は、子の数がビットlowbit(X)のノードに等しいです。

内部ノードのルートに加えて、親ノードC [X + lowbit(X)]です。

ツリーの深さは、log(N)です。

 

注:8:1000、C [8] =和[8]が、C [8]の子ノードを有しているC [1] - > C [7]、我々は保存されているC [X-lowbit(X) + 1、x]は、[3] = Cの[2] + C [3](C [2] = [1] + [2]、子ノードである持っている必要とされる合計として部分であり、和C [1])、候補セット及びいくつかの親子関係を構成する全てC。いくつかのクエリは直接関連していない,,,私たちはそれらの間で相互に補完し、理由のフェンウィックツリーを変更する必要があるため,,,,注意が親ノードへのアクセスを変更し、我々は彼の父の息子に応じて変更することができ、良好な親子ノードであります親が子ノードはその子ノードを掃引するために継続する必要がない情報が含まれている場合、親と子の関係は、動的変更を維持することが主な理由です。

コードの実装:

int型尋ねる(int型x)は、

{

  (; I; I- = lowbit(I)は、i = xをINT)ため

    ANS + = C [X]; // 1各部のメンテナンス情報のために結合されています。

  年を返します。
}

ボイド追加(int型のx、int型のY){

  (; X <= Nであり、X + = lowbit(x)は、x = X)C [X] + = yについて、

  //はそのツリーについて考え、私たちは、[X] + [X-lowbitを[x]が存在するC、Xおよびその関連ノード情報の変更のために変更する 1、x]は、 その情報c [x]の子ノードではありません彼の息子の父親へのアクセスを訪問していないため、変更、およびC [x]は、彼の父は変更される場合があります。
}

動作初期化を直接使用することができる追加、lowbit X回だけ各エッジより高い効率を訪れた誰尋ねる同じ画像での動作を掃引直接であってもよいです。ON、元Onlognは、リークが漏れていなかったがありません。

心の状態を慌てる必要はありません徹底的に検査を理解するために知識を揚げていない、それは今出て押し出すことができます。

それぞれのより深い理解を取り戻すことです........

 

おすすめ

転載: www.cnblogs.com/three-D/p/11257966.html
おすすめ