2011-09-17から1日間の記事一覧

AOJ0141 Spiral Pattern

問題リンク Spiral Pattern 解法 (i, j)をぬろうとしたとき、(i, j)に隣接するマスが既に'#'だともう塗れないので方向を変えます(自分が来た方向のマスは除く)。方向を変えてもなお、次のマスが塗れなかったらそこで終了です。 移動ベクトルを使えばすっきり…

AOJ0140 Bus Line

問題リンク Bus Line 解法 基本方針は幅優先探索による最短路探しです。が、思った以上に面倒な問題です。 遷移先を見極める必要があります。 6-9においては1方向に進むので問題ありません。 0-5の区間は今どちら向きに進んでいるかの向きの情報が必要になり…

AOJ0139 Snakes

問題リンク Snakes 解法 AかBかを判定するメソッドを気合いで作りました。 判定条件を書き下すように書いたので読みづらいと思います。 DFAを定義してゴニョゴニョした方が良かったかもしれません。 ソース

AOJ0138 Track and Field Competition

問題リンク Track and Field Competition 解法 クラスTを作りました。Tは選手の番号とタイムを持ち、タイムの昇順にソートできるようにします。 8人で走る組が3つあるので各組についてタイムでソートします。 各組のトップ2は出力し、3,4位を別の配列tに突っ…

AOJ0137 Middle-Square Method

問題リンク Middle-Square Method 解法 String s = x+""; とすれば数xを文字列にできます。 sの長さが8未満のとき、先頭に"0"を追加し続ければ長さ8の文字列にできます。 中央4文字を取得するにはs.substring(2, 6)とします。 取得した文字列をInteger.parse…

AOJ0136 Frequency Distribution of Height

問題リンク Frequency Distribution of Height 解法 数えるだけです。 ソース

AOJ0135 Clock Short Hand and Long Hand

問題リンク Clock Short Hand and Long Hand 解法 時針と分針が何度に傾いているかを調べます。 度に直すことができたらあとは調べるだけです。 ソース

AOJ0134 Exit Survey

問題リンク Exit Survey 解法 N人の買い物金額の合計をNで割ればいいだけですが、N ソース

AOJ0133 Rotation of a Pattern

問題リンク Rotation of a Pattern 解法 図をs[ ][ ]として、90度右に回転させた図をt[ ][ ]とします。 sからtを得ることができればこれを繰り返すことで180度270度回転の図も得られます。 t[i][j]の画素はs[i'][j']の画素からやってきたもので、これは(i, j…

AOJ0131 Doctor's Strange Particles

問題リンク Doctor's Strange Particles 解法 典型的なパズルの問題です。 1行目の10個のマスについて、1か0かを決めます。2^10パターンあります。 このとき2行目のマスについて1か0どちらにするかはすぐ決まります。 すぐ上の1行目のマスを見て、0だったな…