ABC336

ardririy
·

まぁいつものごとく4完なんですが、早解きのお陰で温まりました。

A - Long Loong

要するにループをかけますか、です。流石にかけます。

B - CTZ

nを何回(自然数を保ったまま)2で割れますか?という問題に言い換えできます。言い換えてしまえばループを書くだけ。

C - Even Digits

こういうのはだいたい(登場する数字の数 (= 5))進数を考えれば良いです。この言い換えができればこれもまたやるだけなんですが、0スタートなので0-indexで考える必要があり、n番目の数を考えるときにn≠0であるあいだ5で割るのようなコードを書くので、n=1がコーナーケースになる。1敗

D - Pyramid

左右からそれぞれDPっぽいことをする。

DP[i] = A[i].min(DP[i-1] + 1).min(左端から何番目か)

DP[i] = A[i].min(DP[i+1] + 1).min(右端から何番目か)

操作終了後、最も大きい値が答え。

E - Digit Sum Divisible

"ハーシャッド数" という言葉を知って、詳しくなるなど...(尚問題は全くわからない模様)