[AtCoder] ABC 005 D – おいしいたこ焼きの焼き方
長方形の和は二次元の累積和を使うことで高速に求めることができるので、全ての長方形のパターンを計算し、\( i \) 個のたこ焼きを焼くときの最大値 \( d(i) \) を求めます。\( d(j) > d(i) \ (j ...
[AtCoder] ABC 179 D – Leaping Tak
動的計画法のようなことを遅延セグメント木を使って行います。\( v_i \) をマス \( i \) まで行く方法の個数とします。初期値は \( v_1 = 1 \) です。区間 \( \) から整数を選 ...
[AtCoder] ABC 179 C – A x B + C
\( A, B \) を全探索します。\( A \) を固定した時、\( A \times b \geq N \) となるような \( b \) より大きいものを探索する必要はありません。 ...
[AtCoder] ABC 179 E – Sequence Sum
シミュレーションすると分かると思いますが、\( A_i \) の値は周期的に遷移します。剰余は \( 0 \) から \( M – 1 \) までの値を取ります。したがって、周期的になる前の \( A_i \) の ...
[yukicoder] No. 1233 割り切れない気持ち
\ であることを利用して、
\
となります。ここで、
\
について考えます。自然数 \( k \) を用いて、\( A_i \) が
\
を満たすとき、
[yukicoder] No. 1232 2^x = x
\( p = 2 \) のときは \( x = 2 \) が答えとなります。それ以外について考えます。フェルマーの小定理より、
\
となるので、自然数 \( t \) について、
\ ...
[AtCoder] ARC 004 B – 2点間距離の最大と最小 ( Maximum and Minimum )
最大値は辺の長さの総和となります。最小値は座標で考えると難しいので、図形として考えます。辺の長さを \( a < b < c \) とすると、\( c < a + b \) のとき三角形を作成することができま ...
[yukicoder] No. 1220 yukipoker
全ての手札の組み合わせは \( {}_{NM} \mathrm{ C }_{K} \) 通りありますが、確率を比較するうえでは必要ありません。フラッシュの総数は、同一のソートから \( {}_{N} \mathrm{ C }_ ...
[yukicoder] No. 1219 Mancala Combo
配列の末尾から実際にシミュレーションしていきます。操作を行った回数を \( t \) とすると、\( i \) 番目のマスでは、\( A_i + t \) 個の石があり、操作回数は
\
と更新されます。 ...
[AtCoder] ARC 002 C – コマンド入力
ショートカットは冗長に選んだとしても \( 4^4 \) 通りなので、全てのショートカットの組み合わせに対して必要なボタンの入力回数を求めます。ここで、\( d(i, 0) \) を \( i \) 文字をショートカットを使わ ...