迷宫城堡 HDU - 1269(tarjan求强联通)
2017-09-28 16:01
357 查看
参考代码
http://www.cnblogs.com/zero-begin/p/4795871.html
题意:给一个有向图,问它是不是一个强连通图,如果是输出Yes,否输出No
第一道tarjan题,求是否为强联通图
http://www.cnblogs.com/zero-begin/p/4795871.html
题意:给一个有向图,问它是不是一个强连通图,如果是输出Yes,否输出No
第一道tarjan题,求是否为强联通图
#include <queue> #include <set> #include <map> using namespace std; #define ll long long #define mem(a,b) memset(a,b,sizeof(a)) #define fr freopen("D:\\input.txt","r",stdin) #define fw freopen("D:\\output.txt","w",stdout) const int maxn = 10005; const int maxm = 100005; struct node { int to,pre; }edge[maxm]; int head[maxn],h=0,dfn[maxn],low[maxn],vis[maxn],st[maxn]; bool vis_stack[maxn]; void addedge(int from,int to) { edge[h].to=to;edge[h].pre=head[from];head[from]=h; } int num=0,stnum,fri,index,group=0; void Tarjan(int u) { dfn[u]=low[u]=++index; st[++stnum]=u; vis_stack[u]=true; for(int i=head[u];i>-1;i=edge[i].pre) { int v=edge[i].to; if(!vis[v]) { vis[v]=1; Tarjan(v); low[u]=min(low[u],low[v]); } else { if(vis_stack[v]==true) low[u]=min(low[u],low[v]); } } if(dfn[u]==low[u]) { group++; int a,d,l; do{ a=st[stnum--]; vis_stack[a]=false; }while(u!=a); } } int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) { if(n==0&&m==0) break; mem(edge,0);mem(head,-1);mem(dfn,0);mem(low,0);mem(vis,0); for(int i=0;i<m;i++) { int a,b; scanf("%d %d",&a,&b); addedge(a,b);h++; } int flag=0; stnum=fri=index=group=0; for(int i=1;i<=n;i++) { if(!vis[i]) { vis[i]=1; Tarjan(i); if(group>=2) { flag=1; break; } } } printf("%s\n",flag?"No":"Yes"); } return 0; }
相关文章推荐
- [ACM] HDU 1269 迷宫城堡(Tarjan算法求强联通分量)
- HDU 1269 迷宫城堡(tarjan强联通分量)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- hdu 1269 迷宫城堡 (图的联通,tarjan)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- 迷宫城堡 HDU - 1269(tarjan求强联通)
- hdu1269 迷宫城堡 tarjan求强联通分量
- hdu1269迷宫城堡 (强连通Tarjan+邻接表)
- hdu 1269 迷宫城堡 tarjan 模板
- HDU - 1269 - 迷宫城堡 (tarjan求强连通分量)
- hdu 1269 迷宫城堡 tarjan算法求有向图的强连通分量
- 迷宫城堡 HDU - 1269 (tarjan)
- HDU1269——Tarjan——迷宫城堡
- HDU1269 迷宫城堡 强联通分量Tarjan算法
- HDU 1269 迷宫城堡(强联通模板题)