TopCoder SRM498

こんなの絶対おかしいよ

250

与えられた数列が「等差数列+等差数列+定数列+等差数列+等差数列」という形の数列になってるかを求めよ。

やるだけ。

450

長方形のマス目があり、基準マスがいくつかある。マス目にそれぞれ石を置く。「石と基準マスの間の距離」が、どの組み合わせについても等しいような置き方は、各置き方について何通りあるか。

各マスについて、各基準マスからの距離をvectorで持ったものを用意して、全く同じvectorがあったらその2マスは互換。nマスが互換であるとき、n!通りが発生するので掛け算するだけ。

1000

きつねが原点にいる。今、(Tx, Ty)に移動しようとしている。きつねは、1回のジャンプで、x方向の正方向に0マスからMxマス、y方向の正方向に0マスからMyマス動ける。動く距離は正でないといけない。また、bがbadに含まれるとき、x方向、y方向両方にbマス動くことはできない。badには10の倍数だけが入っている。ちょうどR回で目的地につく場合の数を求めよ。

「動く距離が正でないといけない」→「0もbadに含まれる」と考えると楽だと思う。
0距離移動を特別視しないことで、移動の仕方はX方向、Y方向について独立に考えることができ、この場合はそれぞれDPで求められる。
bad移動が行われる場合は、包除原理を使えば除去できる。

というところまで思いついて、compileまでしたけどSample(4)が通らずにオワタ

結果

250と450が簡単すぎて早解きゲー。

oox 589.92 97位

Rating: 2477 -> 2485 微増