点 を追加する ii. 「一つ前の点が不要であれば削 除する」を繰り返す の双対 (CHT) 1. 直線を傾きでソートする 2. の順に以下を行う i. 直線 を追加する ii. 「一つ前の直線が不要であれば 削除する」を繰り返す → 本質的に同じアルゴリズム x i = 1, … , N p i i = 1, … , N l i 19
matrix-searching algorithm, Algorithmica volume 2, pp. 195–208 (1987) 論文の著者 Peter Shor Shlomo Moran Alok Aggarwal Robert Wilber Maria M. Klawe Θ(N + M) 73
ABC224 B - Mongeness N × M A 1 ≤ i < 1 i ≤ 2 N 1 ≤ j < 1 j ≤ 2 M (i , i , j , j ) 1 2 1 2 A + i ,j 1 1 A ≤ i ,j 2 2 A + i ,j 2 1 A i ,j 1 2 100
1 1 A ≤ i ,j 2 2 A + i ,j 2 1 A i ,j 1 2 A − i ,j 1 1 A ≤ i ,j 1 2 A − i ,j 2 1 A i ,j 2 2 曲線 から曲線 を引いた 差分が単調増加 l j 1 l j 2 104
X − ( i≤k≤j+1 min k ) X ( i≤k≤j min k ) により最小値が更新される場合のみ考え れば良い。 X − j+1 X ( i≤k≤j min k ) が小さくなるほど (元々の区間の長さ が 長いほど) 大きいので、Monge である。 min A = i,j min X i≤k≤j k X = (4, 2, 3, 1) A = 4 2 2 2 2 3 1 1 1 1 j → j + 1 X j+1 i j − i 117
A = i,j (S − j S ) = i 2 S + i 2 S − j 2 2S S i j が Monge かを見れば良くて、 は単調増加なので良い。 2 X A = i,j X (∑ i≤k<j k ) 2 X = (4, 1, 3) A = 0 16 0 25 1 0 49 16 9 0 −S S i j S 125
with applications to the prediction of RNA secondary structure. Journal of Algorithms, 12(3), pp. 490-515 (1991) 論文の著者 Lawrence L. Larmore Baruch Schieber (論文の著者は 人いません) Θ(N log N) Θ(N) 6 158
K i,j = A + B k min { i,k k,j} = A + B k arg min { i,k k,j } を計算せよ。 最短路で捉えたときのおきもち : 頂点 から頂点 へ 個の辺を通って移動する。 と移動すると き、 回目の移動のコストが で、 回目の移動のコストが である。 A, B i j 2 i → k → j 1 A i,k 2 B k,j 245
最小値を取る位置を としたとき、 である A, B C = i,j A + B k min { i,k k,j } C K = i,j A + B k arg min { i,k k,j } K ≤ i,j K , K ≤ i,j+1 i,j K i+1,j 250