[AtCoder] パナソニックプログラミングコンテスト2020 D – String Equivalence
深さ優先探索を使うらしい。
コード#include <bits/stdc++.h>using namespace std;typedef long long ll;int N;void dfs(string s) ...
[AOJ] No. 0341 繰り返す呪文
動的計画法を行います。\( d(i, j) \) を \( t \) の \( j \) 番目までの部分文字列において、\( b \) の \( j \) 番目までの部分文字列の出現回数とします。初期値は、\( d(i, 0) ...
[AtCoder] 第二回全国統一プログラミング王決定戦本戦 B – NIKKEI String
\( n = |S| \) とします。\( S_3 , \ S_4 \) を固定して考えます。\( S \) の \( i \) 文字目から \( j \) 文字目までの部分文字列を \( S(i, j) \) \( (0 \ ...
[yukicoder] No. 927 Second Permutation
順列に関する問題です。ライブラリの prev_permutation() を利用しましょう。
コード#include <bits/stdc++.h>using namespace std;typedef lo ...
[AOJ] No. 0578 看板 (Signboard)
制約が緩いので愚直に文字列を走査していきます。
古い看板から作ることができる看板の例を考えます。例えば、お店の名前の文字列の長さが \( 3 \) であり、古い看板の文字列の長さが \( 7 \) のとき、文字列の ...
[AtCoder] AGC 040 A – ><
条件を満たす整数列を作ります。まず初めに、\( a_i = 0 \ ( 1 \leq i \leq N) \) とします。次に、文字列の先頭から末尾に向かって、\( S_i = \) ‘<‘ なら ...
[AtCoder] ABC 143 C – Slimes
文字列を先頭から調べていきます。連続する文字を一つとしてカウントするので、\( c = S_0\) として、\( c \) と異なる文字が出現したときカウンタを回し、文字を更新します。
コード#include <b ...
[AtCoder] AGC 039 A – Connection and Disconnection
長さが \( n \) の単一の文字からなる文字列をどの隣り合う \( 2 \) 文字を相異なる文字列にするために必要なコストは、
\
となります。例えば、\( n = ...
[AtCoder] ABC 140 D – Face Produces Unhappiness
幸福でない人に着目して考えます。幸福でない人の文字列は、”RL” または “LR” となっているので、同じ文字が連続する文字列は幸福である人を含んでいるので、\( S \) を圧 ...
[Codeforces] Hello 2019 C. Yuhao and a Parenthesis
どのようなとき、括弧列の対応が取れるかを考えると、既に括弧の対応が取れている括弧列を連結させるとペアが一組できます。ここで、ある括弧列を S とします。括弧の対応が取れる括弧列は、S を先頭から調べていき、R ...