/**
[双连通分量]poj 3352 Road Construction
题意,求一个无向图至少要添加几条边才能成为边双连通图。
1,考虑一棵树,至少要添加(d1 + 1) / 2条边 (d1为度为1的节点数目)
2,将原图中的变连通分量缩点构造一棵树。(相同low值得点在同一个边联通分量中)
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
using namespace std;
#define N 1024
vector<int> vec[N];
int dfn[N],low[N],vis[N],tistamp;
int n;
/*
void dfs(int u,int f)
{
for(int i = 0; i < vec[u].size(); ++i)
{
int v = vec[u][i];
if(!vis[v])
{
vis[v] = 1;
low[v] = dfn[v] = ++tistamp;
dfs(v,u);
low[u] = min(low[u],low[v]);
}
else
low[u] = min(low[u],dfn[v]);
}
}
*/
void dfs(int u