AOJ Volume21

AOJ2151 Brave Princess Revisited

問題リンク Brave Princess Revisited 解法 (町, 残金)をノードにしたダイクストラで解けます。 (i, c)の状態からはお金を払わずに行く進み方 (残金が距離以上あるとき)お金を払って襲われる人数を0にして進む方法の2通りがあります。 ソース

AOJ2150 Matsuzaki Number

問題リンク Matsuzaki Number 解法 Nより大きな素数の組み合わせの和を十分多く求めてその中でP番目の大きさのものを探す方針です。 大きさ150000程度までの素数を求めておきます(150000は適当です)。 Nより大きい最小の素数がk番目の素数だとします。k 〜 k…

AOJ2186 Heian-Kyo Walking

問題リンク Heian-Kyo Walking 解法 非常に典型的なDPになります。 ホクサイはゴールから遠ざかるような動きをしないので(i, j)の交差点から(i+1, j)か(i, j+1)に進みます。 dp[i][j]: 交差点(i, j)に到達する経路の数 とすることで解けます。 ソース

AOJ2185 Petting Cats

問題リンク Petting Cats 解法 長方形[x, x+w]*[y, y+h]の上に猫が何匹いるかを数えます。 ソース

AOJ2149 Luck Manipulator

問題リンク Luck Manipulator 解法 最大10000フレームまでシミュレートします。 ソース

AOJ2131 Pi is Three

問題リンク Pi is Three 概要 実数Rが与えられる。"整数/整数"の形で、円周率πとの誤差がR以下となるような最小の分母とその分子を求めよ。条件を満たす分子が複数ある場合はより誤差の小さいものを答えよ。 0 解法 分母Dと分子Nをそれぞれ1とし、1ステップ…

AOJ2104 Country Road

問題リンク Country Road 解法 発電機を置く座標を考える必要は全くありません。その発電機によって電力が供給される家の範囲を考えます。1台のとき、1〜Nの家全てをカバーするので電線の長さはx_N-x_1です。発電機がもう1台あったとき、x_1 〜 x_k と x_k+1…

AOJ2103 Battle Town

問題リンク Battle Town 解法 シミュレート問題です。コマンド毎にマップを更新していきます。 現在位置と向きを覚えて実装していきます。 ソース

AOJ2102 Rummy

問題リンク Rummy 解法 サイズが小さいので、大きさ3のグループを3つ作るやり方を全通り試します。 全てのグループについてセットの条件を満たすかを調べます。 ソース

AOJ2101 Perfect Number

問題リンク Perfect Number 解法 1つのNあたり、O(√N)で判定できます。 i を1〜√Nの範囲だけ回し、Nを割り切るものを見つけたらそれは約数で、同時にN/iも約数です。 同じ数を重複して加算しないように注意が必要です。 ソース

AOJ2100 Saizo

問題リンク Saizo 解法 そのまま実装するだけです。 ソース