2013-07-01から1ヶ月間の記事一覧

AOJ0268 Kongo Type

問題リンク Kongo Type 解法 入力値を16進数の1つの整数としてみて、ビットマスクを使って解きました。 (0.5)^n の浮動小数点は誤差なく正確に計算できるので、色々と心配しなくて大丈夫です。余談 入力値が32ビットなので、楽をするためにInteger.parseInt(…

AOJ0267 Triangle of Blocks

問題リンク Triangle of Blocks 解法 配列でブロックの個数を管理して解きました。 あとは問題文通りにシミュレートさせるだけです。 ソース

AOJ0266 Aka-beko and 40 Thieves

問題リンク Aka-beko and 40 Thieves 解法 DFAの遷移関数を書いて解きました。 A: 1 X: 2 Y: 3 Z: 4 W: 5 B: 6 砂漠: 0 という風に状態を置いています。 ソース

AOJ0264 Finite Field Calculator

問題リンク Finite Field Calculator 解法 構文解析です。 四則演算の解析にちょろっと手を加えれば解けます。 ソース

AOJ0263 Beat Panel

問題リンク Beat Panel 解法 DPで解きました。 dp[i][S]: iターン目終了時点のボタンの状態がSのときの最高得点 という表を埋めます。 ボタンの状態や押すボタンの状態、押した後のボタンの状態など全部ビット操作で書けば、コードがめっさスッキリしますね。…

AOJ0262 Making Sugoroku

問題リンク Making Sugoroku 解法 マスを頂点にした有向グラフを作ります。 マスiからサイコロを振って進み、マスの指示に従って辿りつけるマスjに向かって有向辺を張ります。あがりマスから逆辺を辿ると、訪問したマスはあがることができるマスになります。…

AOJ0261 Mayan Crucial Prediction

問題リンク Mayan Crucial Prediction 解法 入力された日が基準日(0.0.0.0.0 or 2012/12/21)から何日離れているかを計算して、もう片方の暦の上でその日数分、日にちを進めました。 1日ずつカウントするとえらいことになるので、1周期(マヤなら13*20*20*18*2…

AOJ0099 Surf Smelt Fishing Contest II

問題リンク Surf Smelt Fishing Contest II 解法 最初はPriorityQueueでゴリオシできると思ったのですが無情のTLE。 なのでセグメント木っぽいの作って解きました。 木のノードには、その区間の最大匹数とそのidを持たせておき、クエリが来るたびに更新しま…

AOJ0098 Maximum Sum Sequence II

問題リンク Maximum Sum Sequence II 解法 よくある総和の問題です。 (1, 1)-(i, j)の部分行列の総和S[i][j]を前計算しておくと、 (y, x)-(i, j)は S[i][j] - S[y-1][j] - S[i][x-1] + S[y-1][x-1] で求められます。 ソース