AtCoder, 全探索, 数学

問題方針

\( N \) 個の整数が ‘pairwise coprime’ であれば ‘setwise coprime’ なので、’pairwise coprime’ ...

AtCoder, Union Find, 幅優先探索

問題方針

友達同士のグループの人数の最大値の分だけグループがあれば、「同じグループの中に友達がいない」という状況がつくれます。したがって、連結成分の最大値を求めます。これは、幅優先探索や Union-Find を使うことで求めることがで ...

AtCoder, 累積和

問題方針

与えられた式は、

\

となるので、\( B_i = A_1 + A_2 + \cdots + A_i \) とすると、

\

となります。よって、あらかじめ累積和を計算してから求め ...

AtCoder, 数え上げ

問題方針方針1

行と列はそれぞれ独立に選ぶことができることに注目します。 \( i \) 行目にある爆弾の個数を \( R(i) \) とし、\( j \) 列目にある爆弾の個数を \( C(j) \) とします。マス \( (i, j ...

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

問題方針領域の作成

徒歩で行くことができるマスをグループ化し、IDを振ります。マス \( (i, j) \) の ID が \( 0\) であることを \( G(i, j) = 0 \) と表し、そのマスから徒歩でいけるマスの ID は ...

AtCoder, 全探索

問題方針

\( i \) 番目までで一番高い身長を \( h_i \) とすると、\( i + 1 \) 番目の人に必要な踏み台の高さは、

\

となります。\( h_0 = A_0 \) として、全探索します。

AtCoder, 全探索

問題方針

マス \( i \) を選択したとき、\( N \) 回以下の移動でマス \( i \) に戻ってくるので、\( K \) 回以下の移動で何周できるかを考えます。周回しない方が最適な場合もあることに注意します。マス \( i ...

AtCoder, 数学

問題方針

下記の問題と似ています。

まず初めに、\( K \) の値を無視して考えます。また、\( X = |X| \) としても一般性を失わないので、\( X = |X| \) とします。整数 \( t \) を

AtCoder, 二分探索

問題方針

\( K \) 回の操作後の最も長い丸太の長さを \( t \) とします。\( t \) を固定したとき、条件を満たすかどうかを二分探索によって求めます。丸太 \( i \) の長さを \( t \) 以下にするためには、

AtCoder, 全探索, 累積和

問題方針

条件を満たす石の並びは、先頭から \( i  (0 \leq i \leq N)\) 個目までが赤石で、以降は白石です。\( i = 0 \) のときは全てが赤石で、\( i = N \) のときは全てが白石です。したがって、 ...