AOJ1186 Integral Rectangles
問題リンク Integral Rectangles
- 解法
大小関係を比較する関数1個作っておくと楽でした。
解の範囲が明確なので、1 <= y, x <= 150 を回して、入力値の(h, w)より大きくて、現在解より小さい横長の長方形を見つけます
- ソース
AOJ0268 Kongo Type
問題リンク Kongo Type
- 解法
入力値を16進数の1つの整数としてみて、ビットマスクを使って解きました。
(0.5)^n の浮動小数点は誤差なく正確に計算できるので、色々と心配しなくて大丈夫です。
余談
入力値が32ビットなので、楽をするためにInteger.parseInt(sc.next(), 16)を使おうと思ったら例外吐かれて死にました。"0x80000000"は2^31なのですが、Integer.MAX_VALUEを超えるのでint型に収まらないと解釈されるみたいです。Long.parseIntを使えば問題ないです。
- ソース
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
という風に状態を置いています。
- ソース
AOJ0263 Beat Panel
問題リンク Beat Panel
- 解法
DPで解きました。
dp[i][S]: iターン目終了時点のボタンの状態がSのときの最高得点
という表を埋めます。
ボタンの状態や押すボタンの状態、押した後のボタンの状態など全部ビット操作で書けば、コードがめっさスッキリしますね。
- ソース