数字(0~9)を代入した時に、与えられた数列を単調増加数列にすることができるかどうか、できるなら代入後の数列を答えるという問題。うまい解答を作れず、nwinさんのコードを参考に使わせていただきました。ありがとうございます。わかりやすいコードで大変助かりました。前の数字より桁数が大きいか小さいかチェック。桁数が一緒ならsolveを呼んで、今の数字と前の数字を上の桁から見ていく。solveの中身をまとめると次のようになる。片方の桁がもう一方より大きければ終わり。できるだけ小さい桁で前の桁を上回るように"?"に値を代入する。"?"になにを入れても前の数字より大きくできない時も終わり。詳しくはコードを追っていって欲しい。treesバンド「路上事故」は今度ツリーランドで全国ツアーを行う。すべての都市間は行き来可能なことが保障されている。各都市にはそれぞれ決まった人口が住んでいる。路上事故はある順番でいくつかの都市を回りいくつかのライブを行うが、それには次のような決まりがある。同じ都市は1度以上訪れない。コンサートを行えるのは最後にライブを行った都市の人口よりも、その都市の人口が多いとき。好きな都市からツアーをスタートできる。この条件を満たすとき、ツアーによってコンサートに参加できる人数を最大にしたときのその総参加者数を答える問題。すべての都市は行き来可能なことから、グラフは木構造をとることがわかる。したがってどの都市から来たかがわかれば、次に行くべき都市がわかる。次の都市に行くとき、今の都市でコンサートを行う場合と行わない場合の両方について探索を進めていく。深さ優先探索で帰ってきた結果によりdp表を更新していけば、最大値(つまり答え)がわかる。読者になるリンクTopCoderCodeforcestwitterGitHubQiitaはてなブログをはじめよう!roiti46さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。