AtCoder, 数学

問題方針式の変形

整数を考えるうえで、\( X = a_k (p + 0.5) \) という式の \( 0.5 \) という部分は考えにくいので、式の変形を行います。\( a_k \) は偶数なので自然数 \( b_k,\) を用いて、 ...

AtCoder, 実装

問題方針

順列の生成を行えば良いので、next_permutuation を使います。

コード

 

AtCoder, 二分探索, 探索, 累積和, 貪欲法

問題方針

一般ゲストの並びを変えても影響がないので、降順に並び替えます。つまり、\( A_{i}\geq A_{i + 1} \ (0 \leq i \leq N – 2)\) を満たすとします。

最終的な幸福度が最大 ...

AtCoder, 動的計画法

問題方針

動的計画法を行います。\( N \) 回のジャンケンにおいてジャンケンの手が制約されるグループは \( K \) 個存在します。例えば、\( K = 2 \) のとき、\( 0, 2 ,4, \cdots \) と \( 1, ...

AtCoder, 数学

問題方針

両者の距離が \( 2 \) の倍数のとき、向かい合うように進む事が最適です。また、卓 \( 1 \) または \( N \) に留まり続けることは最適ではありません。

\( (B – A) \bmod 2 ...

AtCoder, 数学

問題方針

\( N \) が奇数の場合、\( f(N) \) は奇数となるので、答えは \( 0 \) となります。ここで、\( N ! \) の末尾に続く \( 0 \) の個数を考えます。

これは、\( N! \) の ...

AtCoder, 貪欲法

問題方針

どのようにブロックを叩いても不可能な数列は、数列の要素に \( 1 \) が無い場合です。それ以外の数列は、少なくとも \( N – 1 \) 個のレンガを壊すことで条件を満たします。最終的に条件を満たす数列は、\ ...

AtCoder, 数学

問題方針

必要なお菓子の数を \( n \) とすると、\( n \) は \( A\) と \( B \) で割り切ることができる数なので、\( A, B \) の最小公倍数が答えになります。

コード

 

AtCoder, 文字列

問題方針

\( n = |S| \) とします。\( S_3 , \ S_4 \) を固定して考えます。\( S \) の \( i \) 文字目から \( j \) 文字目までの部分文字列を \( S(i, j) \) \( (0 \ ...

AtCoder, 数え上げ

問題方針

\( A_i < A_j \) を満たす \( (i, j) \ ( i < j ) \) の数を \( l_j \) とし、\( A_j < A_k \) を満たす \( (j, k) \ ( j < ...