0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000001111111111111100000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000011111100000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000000000000000000000000000011111111111111100000000000000000
0000000000000111111000000000000000000011111111111111100000000000000000
0000000000000100001000000111111000000011111111111111100000000010000000
0000000000000100001000000111111000000000000000000000011000000000000000
0000000000000111111000000111111000000000000000000000011000000000000000
0000000000000000000000000000111111000000000000000000000000000000000000
0000000000000000000000000000111111000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
サイズmx nのバイトの2次元配列が与えられます。すべてのバイトが1または0であることが保証されています。上記のように、2dで表示したときに1で表される長方形の数を見つけます。
完全に塗りつぶされた長方形のみがカウント対象と見なされます。
長方形は、エッジ上にある場合を除き、0で囲む必要があります(ただし、1の斜めに接する長方形は大丈夫です(例を参照してください))。
たとえば、上記の配列には5つの有効な長方形があります。
任意の言語を使用できます。
1
言い換えると、長方形は0またはエッジで囲まれている必要があります
—
ランチャー14年
できた より良い英語で表現してくれてありがとう。
—
ミクロ
どう
—
ランチャー14年
1100\n1100\n0011\n0011?
それが「隣接/重複」を書いた理由だと思います。これらは、私の最初の意図からの2つの有効な長方形です。しかし、「周囲の」条件はそれらを制限しています。それを説明するためのより良い方法はありますか
—
ミクロ
対角線であっても、対角線が隣接を意味するかどうかはあいまいです。囲まれているかどうかにかかわらず、同じ曖昧さは、コーナーで囲まれているか、または側面だけで囲まれている
—
ランチャー14年