競技プログラミング用 知識集積所

ABC422B - Looped Rope

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

A問題レベルのものは省略

考え方

問題に書いてある通りにやるだけ。
二重ループ※で全てのマスについて全探索※し、
  • 白マスである
  • 黒マスであるが、周囲の黒マス数が2か4である
を満たしているか確認すればよい。

このとき、一番上のマスでは「上のマスが黒かどうか」が範囲外になってREしてしまう。
そのため、上のマスのチェックには一番上のマスでないかどうか、右のマスのチェックには一番右のマスでないかどうか、などの条件を合わせて書くことが必要。

解答例


注意点


別解

周囲を白マスでぐるっと囲んで、(H+2)*(W+2)グリッドにしてしまう手もある。
ただし、囲いの追加のためにはやや高度なstring型の処理が必要だったり、forループの範囲に修正が必要だったり、別方向のややこしさが発生する。

タグ:

二重ループ
ウィキ募集バナー