強くなりたい

毎日無意識に生きてて良くない

典型90問 041~050

042 - Multiple of 9(★4)

Kが9の倍数であることとKの各桁の和が9の倍数であることは同値。

さらにDPテーブルを次のように定め、遷移は各桁の最高位の数に着目して考える。


dp[k] = (各桁の数字の和がkであるような自然数がいくつあるか)

AC

043 - Maze Challenge with Lack of Sleep(★4)

01BFSというやつらしい。かなり苦戦した。 下の記事がめちゃめちゃわかりやすかった。

01-BFSのちょっと丁寧な解説 - ARMERIA

またそのまま書いてもギリギリTLEするので入力の受け取りを工夫する必要があった。 AC

well-defined.hatenadiary.com

044 - Shift and Swapping(★3)

右方向へ配列をシフトする操作を愚直に書くと計算量が膨大になるので、それをメモするところがポイント。

AC

046 - I Love 46(★3)

46で割ったあまりでそれぞれの数字が何回登場したかを記録しておけば全探索できる。

AC

048 - I will not drop out(★3)

問題文を言い換えると1分でA_i-B_i,B_i点の問題が解けるということなのでこれらをまとめた配列を降順にソートして上からK個分の合計得点を出力すればよい。

AC

050 - Stair Jump(★3)

見るからにDP

AC