AtCoder,全探索,累積和

問題方針

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

AtCoder,全探索,整列

問題方針全探索

赤色、緑色、無色のリンゴの美味しさを降順に並び替え、その累積和をそれぞれ、\( P, Q, R \) とします。また、\( i \) 個のリンゴの累積和を \( P(i) \) のように表します。次に、無色のリンゴを \ ...

AtCoder,全探索,数え上げ

問題方針

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

コード#include <bits/stdc++.h>using namespace std;typedef long ...

AtCoder,ビット全探索

問題方針

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

コード#include <bits/stdc++.h>using namespace std;typedef long long l ...

AtCoder,二分探索,累積和

問題方針累積和と二分探索

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

AtCoder,全探索

問題方針

愚直に全探索します。探索範囲は、\( \) で十分です。

コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int main( ...

AtCoder,二分探索,数学

問題方針

任意の素数 \( p\) について \( N \bmod p^m = 0\) となるような最大の正の整数 \( m \) が求められたとします。この素数 \( p\) に関して、操作回数を最大化するには、\( c = 1, 2 ...

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

問題方針

幅優先探索で迷路を解くような感じで考えます。始点 \( 1 \) から幅優先探索を行い、到達した部屋の道しるべは、直前に来た部屋となります。隣接リストを作成し、到達した部屋のフラグを管理することで探索を行います。

コード ...

AtCoder,ビット全探索

問題方針

各本に対して読む読まないの \( 2 \) 通りが考えられるので、ビット全探索を行います。

コード#include <bits/stdc++.h>using namespace std;typedef long l ...

AtCoder,全探索,深さ優先探索

問題方針

全ての数列のパターンに対して得点を求めます。どのように数列を生成するかですが、深さ優先探索を行います。条件を満たす数列が \( i \) 番目まで決まっているとき、\( A_{i + 1} \) の値は、\( A_{i} \l ...