☆7日本語につき問題文は略。着眼点が異なる別解を紹介する。満たすべき条件を考察する。行と列の反転は同じ箇所に対して高々1度しか行う必要がなく、どの順番で行っても同じ結果が得られることに留意しておく。真っ黒に塗りつぶされた状態のマス目から、反転操作を行ってたどり着けるマス目のパターンの集合に等しい。操作を逆回しにすれば黒に塗りつぶせるため)操作はどのような順番で行っても良いので、とりあえず行をいくつか選んで反転させてから、列を反転させる。2種類しか存在しないことが分かる。始めに選んだ行の集合にほかならない。含まれるかどうかは、列ごとに考えてパターンが高々2種類のみか?を判定すれば良いことになった。差分を取るしかし、長さ2000もの0-1パターンの種別を判定するのはビットベクトル等を用いたとしても厳しい。そこで列同士の差分(XOR)を考えてみることにする。含まれる長方形の列同士の関係は「等しい」か「反転」のどちらかであるため。探す問題に変換できる。最大長方形の問題に長方形の上端を固定して、行ごとに問題を解く。それぞれの列において、1行目と等しい連続する部分を下に最大限伸ばす。すると、高さの列が得られる。この高さの範囲内で、最も大きな長方形を求めればよい。