AtCoder, 数学

問題方針ビットカウントのアルゴリズム

ビットカウント

アルゴリズムについては上記のサイトを参考にしました。

\( 2 \times 10^5 \) 以下の \( f(n) \) の値は、愚直に求めます。 ...

AtCoder, 全探索, 数え上げ

問題方針

\( 1 \leq x, y, z \leq \sqrt{N} \) の範囲で全探索します。

コード

 

AtCoder, 数学

問題方針

排他的論理和 xor を \( \oplus \) で表現します。\( i \) 番目のスカーフの番号を \( b_i \) とすると、

\

ここで、\( a_i \) の排他的論理和を考えます。

AtCoder, 貪欲法

問題方針

証明をしないとダメだと思いますが、貪欲法で考えます。\( 2 \) 人目以降の到着で心地よさが増えることと、心地よさの増分は一人分だけであることを考慮して、その時々で心地よさを最大化します。まず初めに、配列を降順に並び替え、\ ...

AtCoder, ビット全探索

問題方針

各行と各列に対して、色を塗るかどうかを考えればよいので、ビット全探索を行います。

コード

 

AtCoder, 数え上げ

問題方針

エラトステネスの篩のような考え方で約数を数え上げます。

\( i \) の約数の個数 \( a(i)\) とすると、\( 1 \leq ij \leq 10^7 \) を満たす、\( 1 \leq i \leq 1 ...

AtCoder, 二分探索, 累積和

問題方針

机 \( A \) の本を \( i \) 冊読んだとき、机 \( B \) の本を最大でいくつ読むことができるかを考えます。机 \( A \) の本を \( i \) 冊読むのにかかる時間は、累積和で求めることができます。残 ...

数え上げ

問題方針

数列の要素の頻度を管理することで、各操作における偏差が計算できます。偏差が計算できれば、操作後の数列の総和を求められます。

コード

 

AtCoder, 数学

問題方針

\( 10 \) 進数を \( 26 \) 進数に対応させるようにして考えます。

コード

 

 

AtCoder, 数学

問題方針

数列に \( 1 \) が含まれるとき、\( 1 \) の個数が \( 1 \) ならば、答えは \( 1 \) であり、複数あれば答えは \( 0 \) となります。次に、数列に \( 1 \) が含まれない場合を考えます。 ...