AtCoder Beginner Contest 264 C問題 Matrix Reducing
問題
提出解答
問題の概要
行 列の行列 と 行 列の行列 が与えられる.
次の操作を 回以上行うことにより, を に一致させることができるか?
- から1行選び, その行を削除する.
- から1列選び, その列を削除する.
制約
解法
のうちのどの 行, どの 行を残すかを決め打つと, 残りの行, 列に対してはどのような順番で削除しても結果は同じである.
このことから, どの 行, どの 行を残すか? ということのみが重要になる. ここで, にある 行のうち, 行の残し方の場合の数は 通りである. 列についても 通りである.
よって, 行, 列の残し方の場合の数は 通りであり, 今回は であり, より各パターンを全て生成しても間に合う.
この各パターンの生成の方法として bit 全探索が用いられる. この bit 全探索を用いることで, 計算量 時間となる. ここで, 明らかに残す行, 列の数が 個ではない場合は に一致させられないということに注意して実装しないと実行時間制限に間に合わないプログラミング言語があるかもしれない.