AtCoder, 動的計画法

問題方針

商品を無数に選ぶことができるナップザック問題なので、動的計画法を使って解きます。\( d(i) \) をモンスターに \( i \) ダメージ与えれるために必要な魔力とします。初期値は、\( d(0) = 0 \) であり、\ ...

AtCoder, 数学

問題方針

モンスターの体力が \( H \) から \( 1 \) になるまでのモンスターの体力の種類を考えます。このとき、\( i \) 番目に大きい体力を \( H_i \) とします。ここで、\( H_1 = H \) であり、\ ...

AtCoder, 整列

問題方針

必殺技をHPの多いモンスターから使えば良いので、体力の順に整列させます。

コード

 

AtCoder, 数え上げ

問題方針

\( a(i, j) \) を先頭の数字が \( i \) で末尾が \( j \) である \( N \) 以下の正の整数の個数とします。これをもちいて、求める答えは、

\

となります。

コード ...

AtCoder, 数え上げ

問題方針

\( 1 \leq j  \leq i \) において、\( P_i \leq P_j \) が成り立つことを確認するには、\( P_j \) の最小値が条件を満たしているかどうかを調べれば良いです。よって、最小値を更新しなが ...

AtCoder, 数学

問題方針

\( 0 \leq K \leq N \) という制約なので、この問題は簡単に解くことができます。\( A \) の \( K \) 個の要素が \( S \) を取るとき、\( N – K \) 個の要素をどのよ ...

AtCoder, 整列, 貪欲法

問題方針

ロボット \( i \) は、区間 \(  (X_i – L_i, X_i + L_i) \) に存在しています。\( X_i + L_i \) について昇順に並び替え、先頭から順番に配置していきます。

コー ...

AtCoder, 数え上げ

問題方針

配列 \( A \) の順序は影響しないので、昇順に並び替えます。\( {}_{N} \mathrm{ C }_{K} \) 個の組み合わせの中で、最大値と最小値を求めます。最小値の総和を \( f_1 \) とし、最大値の総 ...

AtCoder, グラフ理論, 幅優先探索, 探索

問題方針

良くある迷路の探索のアルゴリズムを使って、全探索を行います。ここでは、全ての道となっているマスから幅優先探索を行い、到達可能なマスの最短距離を求めます。

コード

 

AtCoder, 実装

問題方針

\( i \) 番目の問題を正解したかどうかという情報と \( i \) 番目の問題を初めて正解するまでに “WA” となった個数を数えれば良いです。これは、配列で管理することができます。

コード ...