Codeforces R.1021 (Div.1) B. Baggage Claim
問題概要 問題へのリンク 整数 $n$, $m$, $k$ と,長さ $k + 1$ の整数の組の列 $((x_1, y_1), (x_2, y_2), \dots, (x_{k + 1}, y_{k + 1}))$ が $(x_i, y_i)$ は,サイズ $n\times m$ のグリッドのセルの座標であり,重複は無い. $(x_i, y_i)$ と $(x_{i + 1}, y_{i + 1})$ の間に1つずつセルを挿入して, 縦横につながった単純パスを作る方法の数 (作れなければ $0$) を mod $10^9 + 7$ で求めよ. 制約 $1 \leq n, m \leq 1000$, $nm \geq 3$,$1 \leq k \leq \lfloor (nm - 1) / 2 \rfloor$ 解 tutorialへのリンク 略解.click to open $P_i = (x_i, y_i)$ と書く.$\{|x_i - x_{i + 1}|, |y_i - y_{i + 1}|\}$ は, (1) $\{0, 2\}$ であるか,(2) $\{1, 1\}$ であるか,でなければならない. 間に入れる点は,(1) では1つに決まる.(2) では,2つの点のうちのどちらか....