C++
有向グラフがDAGである場合は"Yes"を、閉路を含む場合は"No"を出力するコードです。DAGであるときは、xにトポロジカルソートの結果が入ります。していることはBFSですが、キューを使わないことでグラフの辿る順序を保存できています。面白いです。 #include <bits/stdc++.h></bits/stdc++.h>…
C++では、通常、再帰呼び出しを行うラムダ関数には型定義を与える必要がある。 しかし、少し冗長な書き方をすることで型定義を省略できる。 auto dfs = [&](auto dfs, int u) -> void { for (auto v : g[u]) dfs(dfs, v); }; -> voidの部分は忘れやすいので…