AtCoder Grand Contest 004:D - Teleporter

問題

https://atcoder.jp/contests/agc004/tasks/agc004_d

制約

  • 2 \le N \le 10^5
  • 1 \le a_i \le N
  • 1 \le K \le 10^9

考え方

首都 (頂点 1) は自己ループを持たないといけないことは感覚的にすぐわかる。そのとき葉から考えて、高さが K 未満の場合はそのまま辺をつけておいて、高さが K になる場合は、その辺を首都に向けるように修正することで最小の回数を実現することができる。

実装としては、DFSで葉まで遷移して、そこからさかのぼっていき、高さが K になったときに高さを 0 として修正回数を +1 すればよい。

Submission #3865480 - AtCoder Grand Contest 004

どこに着目して考察するべきだったか

根から考えるのではなく、葉から考えてみる。

何がバグっていたか

得た知見

類題