UVALive4287 强联通分量新模版

点击打开链接

题意:给了一个有向图,然后问你最少添加几条边使得整个图的任意一个点可以到达所有的点

思路:换个模版写的这道题目,就是先缩点,对于缩过点的图,答案就是这些点的入度为0的点的个数和出度为0的点的个数的最大值

#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const ll INF=0x3f3f3f3f3f3f3f3fll;
const int maxn=20010;
vectorG[maxn];
stackS;
int pre[maxn],lowlink[maxn],sccno[maxn],dfs_clock,scc_cnt,n,m;
void dfs(int u){
    pre[u]=lowlink[u]=++dfs_clock;
    S.push(u);
    for(int i=0;i

你可能感兴趣的:(图论,强联通分量)