Codeforces Round #143 (Div. 2) - E. Cactus

問題リンク

解説

閉路の中に閉路がないという条件なので、閉路を圧縮して1つの頂点とみなしましょう。そうすると、木になります。

この閉路を圧縮した頂点を通るときは、2通りの通り方があるので2倍するといいです。

適当に前計算をすれば、各クエリ O(\log n)で解くことができました。

提出コード

codeforces.com