给出n个点m条边的有向图,问至少添加多少条边使得任何点都可以从s点出发可达 #include<bits/stdc++.h> #define forn(i, n) for (int i = 0 ; i < int(n) ; i++) #define fore(i, s, t) for (int i = s ; i < (int)t ; i++) #define fi first #define se second #define all(x) x.begin(),x.end() #d…
void tarjan(int u) { dfn[u]=low[u]=++dfs_clock; stack_push(u); for (int c=head[u];c;c=nxt[c]) { int v=to[c]; if (!dfn[v]) { tarjan(v); low[u]=min(low[u],low[v]); } else if (!scc[v]) low[u]=min(low[u],dfn[v]); } if (low[u]==dfn[u]) { scc_cnt++; int cu…