[AtCoder] ABC 143 C – Slimes
文字列を先頭から調べていきます。連続する文字を一つとしてカウントするので、\( c = S_0\) として、\( c \) と異なる文字が出現したときカウンタを回し、文字を更新します。
コード#include <b ...
[AtCoder] AGC 039 A – Connection and Disconnection
長さが \( n \) の単一の文字からなる文字列をどの隣り合う \( 2 \) 文字を相異なる文字列にするために必要なコストは、
\
となります。例えば、\( n = ...
[yukicoder] No. 871 かえるのうた
\( x \) 座標の正の方向と負の方向に向かって声が届く範囲を更新していきます。一方向に対して更新していくのではなく、同時に両方向に更新していくことがポイントです。
正の方向と負の方向に対してそれぞれ添え字を更新 ...
[AtCoder] ABC 142 E – Get Everything
鍵 \( i \) は \( b_i\) 種類の宝箱を開けることができるので、鍵は鍵束であると見ることができます。全ての宝箱を開けられないときは、全ての鍵の集合に対して対応できない宝箱があるということなので、先にそれのチェ ...
[AtCoder] ABC 142 D – Disjoint Set of Common Divisors
\( A \) と \( B \) の公約数を考えるので、\( A \) と \( B \) の最大公約数を考えます。最大公約数を素因数の数が求める答えとなります。
コード#include <bits/stdc++ ...
[AtCoder] ABC 142 C – Go to School
\( i \) 番目の生徒が教室に来た時の教室にいる生徒の人数が \( A_i \) なので、\( i \) 番目の生徒は \( A_i \) 番目に教室に来たことになります。よって、\( A_i \) について昇順に整列させ ...
[AtCoder] ABC 141 D – Powerful Discount Tickets
チケットを一度に複数枚使うことと一枚ずつ使うことが同じであることを確認します。\( 2 \) の指数を用いて整数を表現することを考えます。例えば、\( 31 \) は、
\
と表現できま ...
[AtCoder] ABC 141 C – Attack Survival
\( i \) 番目の人の正解数を \( p_i \) とすると、その人のポイントは、\( K + p_i – Q \) と表すことができます。よって、正解数の頻度を計算します。
コード#include &l ...
[AtCoder] ABC 140 D – Face Produces Unhappiness
幸福でない人に着目して考えます。幸福でない人の文字列は、”RL” または “LR” となっているので、同じ文字が連続する文字列は幸福である人を含んでいるので、\( S \) を圧 ...
[AtCoder] ABC 140 C – Maximal Value
条件を具体的に書き出すと、
\
となり、\( A_1 \) と \( A_N \) は不等式の制約が一つであることが分かります。よって、\( A_1 = B_1 \), \( A_N = B_{N-1} ...