ぺんぎんメモ

プログラミングのメモです。たまに私生活のことや鬱っぽいことを書きます。

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の部分は忘れやすいので…