【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0053 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0053 【概要】 n番目の素数までの素数の和を求める問題。 【解説】 各データセットに対してO(1)で返せるようにするために、あらかじめ…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0052 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0052 【解説】 n!の末尾の0の数を求める問題。nが最大で20000となるため、実際に階乗した末尾をカウントしようとするとlong型でも収ま…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0051 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0051 【解説】 最大の整数は、貪欲的に上の桁から大きな整数をとっていく場合となるため、文字列の降順にソートすればよい。また、最小…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0041 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0041 【解説】 整数a,b,c,dと演算子+,-,*および()を使用して、10を作ることのできる式を求める問題。肝は全てのパターンをもれなく重複…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0050 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0050 【解説】 文字列を置換すればよいが、apple=peach、peach=appleと置換すると、最初に置換したものも次で置換されてしまうため、一…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0049 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0049 【解説】 与えられる血液型の個数をコレクション等で管理し、カウントしていけばよい。 【コード】
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0048 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0048 【解説】 それぞれの条件に合致するようif文を書いて出力すればよい。 以下のコードでは、各階級の上限値を格納したSortedDictina…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0047 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0047 【解説】 入れ替え操作をそのまま実装すればよい。 A=true、B=false、C=falseとしたDictionaryを用意し、入力で与えられたキーの…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0046 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0046 【解説】 各標高のデータをコレクションに格納しておき、コレクションのMax-Minを出力すればよい。 【コード】
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0045 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0045 【解説】 各行の値をTuple型のコレクションや2つのListに格納しておき、販売金額の総合計は販売単価×販売数量のSumを、販売数量の…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0044 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0044 【解説】 AOJ0009が解けていれば、同様の手法で解くことができる。 kyosuke0924.hatenablog.com 与えられる素数の最大が50,000の…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0043 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0043 【解説】 「パズル」という名前の問題であるが、平たくいうと一色からなる麻雀あがり判定(特殊役除く)である。麻雀を知らない人…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0042 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0042 【解説】 いわゆる0-1ナップザック問題。 動的計画法にて解いていけばよい。漸化式や解説については、リンク先のwikipediaを参照…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0040 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0040 【解説】 アフィン暗号を複合する問題。文字\(\gamma\)について、\(F(\gamma) = (\alpha \cdot \gamma + \beta) \bmod 26 \)の処…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0039 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0039 【解説】 ローマ数字の値を求める行う問題。 あらかじめ、アルファベットに対応した値のDictinaryを用意しておく。 あとは、「大…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0038 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0038 【解説】 ポーカーの役判定を行う問題。以下の優先順位に従って判定していけばよい。 同一のカードが4枚あればフォーカード 同一…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0037 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0037 【解説】 原点に戻ってくるまで、順番にルートを辿っていく。右手を壁に着け、壁伝いに進むため、以下のルールに従って進んでいけ…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0036 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0036 【解説】 二次元のパターンマッチングの問題。二次元の配列にてローリングハッシュを用いて、パターンと一致するかどうかを判定し…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0035 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0035 【解説】 凸多角形において、任意の内角は 180° 以下である。すなわち、多角形の各辺に対し、その多角形の内点は全て、その辺を延…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0034 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0034 【解説】 すれ違う地点の位置を求めればよい。 区間1側の終端駅から出発する列車をA、区間10側の終端駅から出発する列車をBとする…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0033 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0033 【解説】 筒Aに入ってる球を、球は昇順にしか積み上げられない制約下で、筒Bまたは筒Cに移していくことができるかどうかを判定す…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0032 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0032 【解説】 辺と対角線の長さが与えられるので、長方形と菱形を判定する問題。 長方形であれば、角が90°であることから\(a^2+b^2=c^…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0031 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0031 【解説】 分銅の重さは2のn乗のため、入力された整数を2進数表記した場合のビットが立っている位置の分銅の重さが答えとなる。 す…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0030 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0030 【解説】 0~9までの整数までの中からn個選び、和がsになる組み合わせの個数を求める問題。最大でも\( \displaystyle {}_{10} \ma…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0029 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0029 【解説】 AOJ0028と同様にDictionaryを用意し、キーに単語、値に出現回数を記録していけばよい。 最も多く出現する単語は、AOJ002…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0028 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0028 【解説】 Dictionaryを用意し、各整数が現れるごとに値に1を加算していく。すべて入力が終われば値が最も大きいキーを出力する。 …
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0027 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0027 【解説】 DateTime型にはDayOfWeekという題意ピッタリの関数があるので、ワンライナーで一発。 【コード】
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0026 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0026 【解説】 二次元配列を用意。指定の範囲に従ってインクの滴下数を加算していき、滴下が終われば、各要素の最大値をループしながら…
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0025 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0025 【解説】 AOJ0226と入力形式が違うだけの問題。 【コード】
【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0024 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0024 【解説】 球が割れるのに必要な最低速度\(v\)が与えられるので、球を割るのに必要な階数を求める問題。 与式から、必要な高さ\(y\…