私は2行とn列を持っています。 Iは、例えば、他の1から1を分離するのに必要なライン数の最小値を見つけなければならない:他の1と1を分離する水平線と垂直線の最小数を見つけますか?
0 0 1 0 1 1
1 0 0 1 0 1
= Nう私は、これらの2行の間に1本の水平ラインを描画する必要があります。 インデックスの後に垂直線が2つ(0から始まる)、インデックス4の後に垂直線が下になります。
だから総ライン=それは一つの列の長さであってもよいが、行の数が最小であるべきである、すなわち行は任意の長さであり得ることを1 + 2 = 3
注各1(行列の数)このもっと明確にするために他の1
別の例から分離されなければならない:この例では
レッツN = 7
1 0 1 0 0 1 1
0 1 0 0 1 0 0
Iは、1水平ラインANが必要d 2の垂直線。 インデックス1の後に垂直線1本、インデックス5の後に垂直線(長さが列と同じ長さ)。
だから、総ライン= 1 + 2 = 3
は私に少なくとも時間複雑とソリューションを提供してください。
何か試しましたか?それはあなたの意図ではないかもしれませんが、これは "私の宿題をしてください"という質問に遭遇します。 –
私はそれを試しましたが、私の論理は私の問題で言及された時間の複雑さを超えているO(n^2)以上を取っています。私はそれらを試みる前に質問しません。あなたが私の宿題を理解できるなら、してください! – Alfran
あなたのロジックを説明すると、おそらくそれは微調整できます。私の推測では、ダイナミックなプログラミングアプローチがうまくいくと思います。興味深い問題です。水平線はオプションであるため、2回行うことができます。一度水平線と一度、しないで、2つのソリューションのより良いを取る。 –