実装系の問題に関するカテゴリーです。

AtCoder, 実装

問題方針

あるマス \( i \) について、\( H_{i – 1} > H_{i} \) ならば、単調非減少とはなりません。\( H_{i-1} = H_{i} \) ならば、何もせず、\( H_{i – ...

Codeforces, 実装, 整列

問題方針

柱を \( a_1 < a_2 < \cdots < a_n \) のように並び替えることができるかという問題です。どのようにして整列させるかというと、\( a \) を昇順に整列させた配列を \( b \) ...

AtCoder, 実装

問題方針最後の箱から調べる

後ろの箱からボールを入れることを考えると、その箱以降の倍数の個数は変化しないことが分かります。

例えば、\( i < \dfrac{N}{2} \) を満たす \( i \) の倍数は、\( ...

Codeforces, 実装

問題方針題意

文字列 \( s \) に \( p\) に含まれる文字の数だけ任意の場所に挿入して、文字列 \(t\) を作ることができるか調べます。

文字が現れる頻度を計算する

各文字列についてどの文字の頻度を計算します。も ...

AOJ, 実装

問題方針西側にある一番近い雲までの距離

小区間 \( (i , j) \) からその区間を含めて西側にある一番近い雲までの距離が答えになります。もし、雲が存在しなければ \( -1 \) となります。どのようにして求めるかですが、二次元 ...

Codeforces, 実装

問題方針題意

与えられた入力が十字の形をしているかどうかを答えます。十字の形とは、

中心となるセルは一つ
中心から上下左右にそれぞれ一つ以上のセルが存在する
上記以外のセルは存在しない

を満たすものです。 ...

AtCoder, 実装

問題方針得られる数列の候補

\( N \) 回の操作で得られる数列の候補を考えます。\( i \) 回目の操作で \( j = i \) としたときに得られる数列は、\( 1, 2, \cdots, N \) となります。よって、\( ...

AtCoder, 実装, 整列

問題方針操作の順序

操作 A, B を先に行い、残りの操作で C, D を行います。操作 C, D では負の価値の宝石を絶対値の大きい順に筒に詰めていきます。最後にまとめて宝石を戻すということです。

全探索

制約が緩いので全探 ...

AtCoder, ビット全探索, 実装, 探索

問題方針ビット全探索

制約を見ずにこの問題を解こうとすると、ドツボに嵌るかもしれません。スイッチの数と電球の数は最大でも \( 10 \) なので、全探索を考えます。スイッチの状態は on/off の \( 2 \) 通りなので、ビット ...

yukicoder, 実装

問題方針文字列の頻度

出現する文字列の頻度を考えます。国士無双が成立するには、同じ牌は最大でも \( 2 \) 個なので、頻度が \( 2 \) を超えると、Impossible となります。

また、文字列の頻度 \( 2 ...