2011-12-01から1ヶ月間の記事一覧

AOJ0225 Kobutanukitsuneko

問題リンク Kobutanukitsuneko 解法 アルファベットの文字を頂点にしたグラフを作ることで解けます。 例えば、abcという言葉があったら、'a'という頂点から'c'という頂点へ有向辺を引きます。これは、しりとり中にabcという単語を使ったら、この辺を使うとい…

AOJ0224 Bicycle Diet

問題リンク Bicycle Diet 解法 (場所, 訪れたケーキ屋の集合)を対にしたグラフで最短経路探索です。今回は負っぽい値が出てくるのでベルマンフォード法を使いました。 場所iからjへの移動コストは距離*kです。ただし、行こうとしている場所がケーキ屋で、既…

AOJ0223 Stray Twins

問題リンク Stray Twins 解法 2人の子供の位置を対にしたノードで幅優先探索します。 2人が互いに逆向きに進むというのに注意しましょう。 ソース

AOJ0222 Prime Quadruplet

問題リンク Prime Quadruplet 解法 大きさ10^7のエラトステネスの篩を作ります。そして、N, N-2, N-6, N-8が全て素数であるようなNを列挙しておきます。 入力のnを受け取ったら、列挙されたNの中でnより小さくて一番大きいものを探します。 ソース

AOJ0221 FizzBuzz

問題リンク FizzBuzz 解法 1ステップずつシミュレーションしていくだけです。 人はListで表現し、発言する人のインデックスkを覚えておきます。発言があったときに、正しい答えとkの人の発言が合っていなかったら、リストからkを除き、kを更新します。 ソース

AOJ0220 Binary Digit A Doctor Loved

問題リンク Binary Digit A Doctor Loved 解法 小数部が4ケタ以内で表せる小数は16倍すれば(全体を左へ4ビットシフトすれば)整数になるはずです。なので、入力された値を16倍して、小数点以下が0になっているかを調べればいいです。 ソース

AOJ0219 A Popular Ice-cream Shop

問題リンク A Popular Ice-cream Shop 解法 各アイスについて売れた個数のヒストグラムを出すだけです。 ソース

AOJ0218 Dividing Students

問題リンク Dividing Students 解法 定義通りにクラス分けするだけです。 ソース

AOJ0217 Walking in the Hospital

問題リンク Walking in the Hospital 解法 最大値を更新していくだけです。 ソース

AOJ0216 Cutting Down Water Bills

問題リンク Cutting Down Water Bills 解法 計算するだけです。 ソース

AOJ0215 Pachimon Creature

問題リンク Pachimon Creature 解法 ダイクストラを5回やることで解きました。 マス(i, j)と(y, x)の距離ですが、このボード中に通れないマスというのは存在しないので2点間のマンハッタン距離がそのまま移動コストとなります。 次に、最初に持つパチモンの…

AOJ0214 Autumnal Illumination

問題リンク Autumnal Illumination 解法 幾何問題です。 凸多角形同士の接触判定をバグ無くかけるかがカギになります。 凸多角形i, jが衝突しているとは以下のいずれかを満たすことを指します。 1. jが完全にiの内側に入っている 2. iが完全にjの内側に入っ…

AOJ0213 Subdivide The Land

問題リンク Subdivide The Land 解法 全探索+枝刈りです。 i番目の人の求める面積がSだとします。このとき、面積Sであるような長方形で且つ数字iを囲むような長方形の置き方を全通り試します。このとき、他の人と領域がかぶってしまったりする場合枝刈りを加…

AOJ0212 Highway Express Bus

問題リンク Highway Express Bus 解法 (都市, 残りの割引券)をノードにしたダイクストラで解けます。 ソース

AOJ0211 Jogging

問題リンク Jogging 解法 ある生徒 i と別の生徒 j が小学校で会うのはそれぞれki周とkj周走った時です。生徒 i が別の生徒 k と一緒に小学校に会うには、 それぞれ ki'周とkk周走った時です。生徒 i が生徒j, kと共に一緒に小学校に会うには、kiとki'の最小…