AtCoder, 数学

問題方針シミュレーション

カードの置き換えは全ての \( X \) に対して行われるので、セットを用います。セットは順序付きなので、最小値 \( x \) と最大値 \( X \) の取得を高速にできます。このとき、セットから \( X ...

Codeforces, 整列

問題方針

配列 \( a \) の総和が \( 0 \) のときは条件を満たす \( b \) は存在しません。配列 \( a \) の総和を \( s \) とすると、\( s > 0 \) のとき、\( a \) を降順に並べ ...

AtCoder, Union Find, 数え上げ

問題方針照らされるマスについて

散らかっていないマス \( (i, j) \)に照明を置いたとき、水平方向を照らすマスの数を \( a(i, j) \) とし、垂直方向を照らすマスの数を \( b(i, j) \) とします。このとき、 ...

AtCoder, 貪欲法

問題方針

まず初めに仮の最小値 \( d \) を \( d = 0 \) とします。\( i \) 番目の最小値は、\( d \) が \( p_1, \cdots, p_i \) のいずれとも一致しなければ良いので、一致しなくなるま ...

AtCoder, 実装

問題方針

現在 \( y \) 行 \( x \) 列にいるとします。このとき、境界を超えるような方向は反転されます。

コード感想

境界を超えるときの座標の修正を最後に行うのではなく、境界を超えた時に行うことに注意します。

Codeforces, 動的計画法, 累積和

問題

数字列 \( n \) の部分列を取り除いて得られる整数の総和と求めます。

方針部分列について

自然数 \( l \) を \( l = |n| \) とします。ここで、総和に対する \( i \) 文字目の整数 \( ...

yukicoder, 動的計画法

問題方針後ろから考える

マス \( x \) にいるとき、ゲームオーバーマスのマスペアが \(( x + 1, x + 6) \) または \( (x + 2, x + 5) \) または \( ( x + 3, x + 4) \) に ...

yukicoder, 数学, 貪欲法

問題方針

\( 2A \leq B \) のとき、\( A \leftarrow 2A \) と可能な限り更新します。このとき、\( A \) は \(2^nA \leq B\) を満たす最大の非負整数 \( n \) を用いて、

yukicoder, ゲーム問題

問題方針

\( K \geq N – 1 \) のときは先手必勝です。最終的に \( N – 1 \) を言うことができれば勝ちです。ここで、後手が言うことができる数字を考えます。先手がどのような数字を言ったとし ...

AtCoder, 貪欲法

問題方針

カードの種類を \( m \) とします。このとき、残ったカードを \( m \) 枚にするためには、\( N – m \) 枚のカードを取り除かなければいけません。\( 1 \) 回の操作で取り除かれるカードは ...