列ごとおよび行ごとに並べ替えられた行列の対角線の最大値


7

ましょうと非負整数の配列非減少です。{ai}{bi}

すべてのをどれだけ速く見つけることができ ますか?

cj=max0i<j{ai+bji1}
0jn1

単純に、時間かかりますが、単調性がここで役立つことを願っています。O(n2)

も減少していないことが簡単にわかります。我々は行列考えると、それが行と列の方向の両方にソートされ、我々はすべての対角の最大要素を探している行列です。{ci}MMi,j=ai+bj

ただし、任意の列単位および行単位で並べ替えられた行列の場合、この問題はΩ(n2)時間を必要とします。

証明:主対角線の下のすべての数値をます。k番目の対角の要素は、(k、k + 1)からランダムに数えられ(k,k+1)ます。エントリを読み取っても、他のエントリの情報は提供されません。

編集:この問題は、私が予想していたよりもはるかに困難です。この問題をセミリング(\ min、+)のたたみ込み問題としてモデル化し(min,+)(双対を取り、maxではなくminを検索する)、O(\ frac {n ^ 2} {\ log nで解決できます。})O(n2logn)時間に応じてmathoverflow上のライアン・ウィリアムズの答え。ただし、シーケンスが減少していないという情報は使用しません。

回答:


5

すばらしい質問です。FelzenszwalbとHuttenlocherによる「サンプル関数の距離変換」は、これをO(nlgn)時間で計算する方法を示しています。

「ネックレス、畳み込み、X + Y」、ブレムナー他著。は、実際のRAMでのこの問題に対するアルゴリズムと非一様線形決定木モデルのアルゴリズム。O(n2lg2n(lglgn)3)O(nn)


1
私の問題は特別な最小畳み込み問題であることがわかります。ただし、この論文では一般的なケースについてはあまり触れていません。時間で計算するには、関数の1つが凸/凹である必要があり。O(nlogn)
Chao Xu

最初のものはだと思います。あなたが与える限界はバージョン用です。O(n2logn)(median,+)
Chao Xu

1
5ページの#3を参照してください
jbapple

そうですか!私の間違い。
Chao Xu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.