きろく

特筆すべき記録のまとめ

Codeforces Global Round 2:C - Ramesses and Corner Inversion

問題

codeforces.com

解法

問題にある操作は「任意の x1 < x2, y1 < y2 となるような 4 つの値を選び,マス (x1, y1), (x1, y2), (x2, y1), (x2, y2) の値を反転させる」と言い変えることが出来る.また,マス目 A, B で異なっている箇所をマークしておく.ここで,操作においてそれぞれ 2 つの行と列を選ぶが,これは「異なっている箇所は同じにする」,「同じ個所は異なるようにする」の操作であり,選んだ各行・列で 2 つのマスがこの操作を受ける.ということは,各行・列で異なっている箇所の数は増えたり減ったりしながら 0 にならなければならないので,操作によって異なっている箇所の数は +2 か -2 か ±0 されることになる.よって,最初の A, B において,各行・列で異なっている箇所の数が偶数でないとA から B を構成することは不可能.もし 1 つでも奇数になっている行・列があれば No,そうでなければ Yes となる.O(NM).

解答

codeforces.com

f:id:babcs2035:20190407123242p:plain