2026年2月2日月曜日

デンソークリエイトプログラミングコンテスト2026(AtCoder Beginner Contest 443)

 Eまで五完でレートをまた下げる。

コンテスト後のツイート

F - Non-Increasing Number

 解法ツイートを見たら当たり前に感じたが、実際にACするのは結構大変だった。

 最後に使った数字がxで、Nで割った余りがyのとき……というDPを考えるしかなさそう。
 この(x, y)が被ってはダメ、という状況になれば状態数を抑えられる。そのためには、上の桁につけていくのではなく、下の桁に数字を付け足していけば良い!(桁DPで下の桁に足していくような発想ですね)

 あとはDPの復元をすればOK。

 なのだが、最小性を言うため、どの数字を使うか、という順番も大事。
 普通にやればこの順番を満たすのだが、ソートしたりしてしまいハマった。

 一桁のときは、
・[(1, 1), (2, 2), (3, 3), (4, 4),...]
 となっており、これが一番上の桁なのだがから、
 左から順番に、かつ次に使う数字が小さい順に探索していけばOK。


0 件のコメント:

コメントを投稿