题目链接:http://poj.org/problem?id=2762
思路:tarjan进行缩点,得到一个有向无环图。要想形成弱联通的所有的点至少要连成一条,可能会有重边,也就是最多只能存在一个入度为零的和一个出度为零的点。如下图,黑色箭头必须,蓝色箭头可有可无。
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1005;
int n,m,e,head[N],dfn[N],low[N],index,cnt,belong[N],ind[N],out[N];
int stack[N],insta[N],top;
int hd[N];
struct node
{
int u,next;
}edge[6005];
int min(int a,int b)
{
if(a<b)
return a;