フェイス質問
あなたのn×m個のマトリックスを与えるためには、各行番号を選択することを必要とし、i行目の選択位置[i]が選択された行A [I-1]の最初のi-1位置よりも大きくなければならない、選択された数を見つけます数の和が、最小出力のセットは、[1]〜[n]を辞書。
スコープ
1 <= N <= M <= 100
考え
まず、状態がdp明らかです
[I-1] [K] + [I] [J]} $ F $ F [I] [J] = \ MAX_ {I-1 <= K <J}
最大値を表し、i番目の行及びjの数に選択された時間は、この数を選ぶだろう。複雑さは、各サイクルI中の可変MAXKが設けられており、jは毎回変更され、貫通することができるが、$(N ^ 3)$ Oであり、実際にも、jが大きいと大きくなると、kは範囲を見つけるために最適化することができます、fを使用する場合は[I-1] [J-1]は、一度それをMAXK更新されます。
この最適化は、最大値とすると、この番号の数番目の選択されたi番目の行及びjは必ずしもだけ変化どの遷移方程式のように、選択されませんで表される状態に実際に等価です
[I-1] [K] + [I] [J]} $ F $ F [I] [J] = \ MAX_ {I-1 <= K <J}
[I-1] [K] + [I] [J] $ F $ F [I] [J] = \ MAX_ {I-1 <= K <J}
個人間で、時には複数の第一のタイプを設定する設定方法、最終的には良い仕事として、私は_ @、@第2のセットを覚えていないか、なども考えられています。