問題文


https://atcoder.jp/contests/abc357/tasks/abc357_e

概要

functional graphを与えるからそれぞれの頂点について、到達可能な頂点数を求めろ。

頂点 $u$ から 頂点 $u$ には到達可能とする。

解説


functional graphということはどこかにループがある。

Cycle(つまり閉路)に入る直前の頂点から戻る用にDPすれば簡単に解ける。

image.png

オレンジで囲んだCycleに入る直前の頂点 2 は 2自身と 3->4->5 のCycleの全ての頂点に到達できる。

つまり2から到達出来る頂点の数は 4

1から到達出来る頂点は頂点2しかないが頂点2は4個の頂点に到達出来る。

よって1から到達出来る頂点の数は 5

解法1