HDU 2767
题意:给出一些点之间的关系,然后问最少添加多少条边可以使这张图强连通。
裸题,唯一的trick就是判断图一开始就是强连通图的时候输出为0,这里没想清楚,导致卡了半小时。
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct kdq
{
int e ,next ;
} ed[Max * 10] ;
int head[Max] ,num1 ;
int dfn[Max] ,low[Max] , vis[Max] , st[Max] , in[Max] ,out[Max] ,belong[Max] ,cnt[Max] ;
int tp = 0 ,dp = 0 ,num = 0 ;
void add(int a ,int b)
{
ed[num1].e = b ;
ed[num1].next = head[a] ;
head[a] = num1 ++ ;
}
void init()
{
mem(dfn,-1) ;
mem(low,0) ;
mem