三浦ノート

自分の経験したことを検索可能にしていくブログ.誰かの役に立ってくれれば嬉しいです.

A - Diverse Word:AGC22

問題

A - Diverse Word

入力された多彩な単語に対し,辞書順で次の多彩な単語を求める.

理解

多彩な単語の辞書がすぐには想像できないので書き下すことにする.「見たものは想像できる」の精神.

a から始まる多彩な単語について,次の図のように木の形に単語を列挙する(かなり省略は多いが).根の多彩な単語に文字を1つ付け足すようにして子の多彩な単語を作っている.

f:id:OviskoutaR:20191104143106p:plain

各単語の前の数字は辞書での順番を表す.多彩な単語の辞書は,この木における深さ優先な順序で単語が並ぶことが分かる.

c++ の next_permutation は並び替えの文字列で辞書順に次の要素に更新してくれる.*1

以上のことを知れば,A: Diverse Word - AtCoder Grand Contest 022 - parukiのブログ の解法が納得できた.