Orac and Game of Life - #641 div2 e
問題
n * m の 0 か 1 の grid が与えられる.
毎ターン, それぞれのマスが, 隣り合う同じ色のマスをもたなければそのままで, それ以外なら 0, 1 反転する.
t つの query が与えられる.
p ターン後, マス (i, j) の数を答える.
考察
市松模様なら, 最初の grid のまま.
隣あう同じ数のマスがあれば, ともに反転する.
隣に同じ数のマスができたら, 以降反転し続ける.
0101010
1010101
0101010
1010100
のように, 市松模様で部分的に壊れている場合, そこから反転するマスが広がっていく.
最初の grid で, 一番近い, 反転するマスがわかればいい.
計算量が...
解法
「最初の grid で, 一番近い, 反転するマスがわかればいい」と上に書いたが, bfs でやる.
ソースコード
https://codeforces.com/contest/1350/submission/81448139