Codeforces Round #496 (Div. 3) - F. Berland and the Shortest Paths

問題リンク

解説

最短経路木を列挙してくださいという問題です。

頂点1からBFSなどで各頂点までの最短経路 dを求めましょう。

ある頂点 tの親 p d _ {p} + 1 == d _ {t}となるものに限り、かつこれを満たすならどれでも構わないです。

あとはこのパターンを列挙するだけで、列挙の仕方はfor文を回したりBFSなどいろいろあると思います

計算量は O(n + mk)です

提出コード

codeforces.com