2021年1月5日火曜日

Codeforces Round #693 (Div. 3)

  pretestは全完でした。→システムテストも通っていました!


 ツイートだと読みにくいと思うので、Gだけ補足。

G. Moving to the Capital


Step1 都市1から各都市が何歩でいけるか(問題文中のdを)調べる。ここではDと書く。

Step2 それぞれの都市iから逆向きに一歩進んだ都市をjとして、ANS[i]=min(D[i],D[j])とする。高々一回だけ問題文中の2の移動をして良い、というルールを使った感じです。

Step3 各都市からDが大きい方へたどってみてANSの最小値が答え。問題文の1の移動でDが大きい方へは進めるので、これで答えが求まります。

 としました。

 Step3は再帰で書くのが簡単だと思う……けれど、CodeforcesのPyPyではこの深さの再帰は無理(エラーが出る)。(なお、AtCoderならエラーなしでいけるはずですが、PyPyの再帰は遅いので、間に合うかは分かりません)
 なので、どうしようか考えたけど、Dが大きい都市から見ていけば再帰なしでいけた。


0 件のコメント:

コメントを投稿