Learning Algorithms

アルゴリズムの勉強メモ

Codeforces Round #693 (Div. 3)

http://codeforces.com/contest/1472

A: $2^{ctz(h)} * 2^{ctz(w)}$ 個に分かれます
B: 次の順で判定します.sum が奇数なら no,1 が一個以上あれば yes,n が奇数なら no,あとは yes
C: 思考停止メモ化したけど後ろから決めていけばいいです
D: あくまで勝つことが目標なので大きい数は「自分がとる」と「相手にとらせないようにする」が同様に嬉しいので,両者とも偶奇を無視して大きいものからとっていくのが最適です
E: h でソートして w の累積 min をとっておくとかでできます(自分自身と条件を満たすペアになることはないので区間 min とかでやる必要はない)
F: 2 * 2 の無のグリッドは消せるので座圧して dp します
G: 一回しか使えない移動は使うなら一番最後に使うので変なことを考えずに dp できます