hdu1269迷宫城堡 (强连通Tarjan+邻接表)
3 3
1 2
2 3
3 1
3 3
1 2
2 3
3 2
0 0
Yes
No
#include<stdio.h>
#include<iostream>
#include<malloc.h>
using namespace std;
typedef struct nnn
{
int u;
struct nnn *next;
}*List,list; List linkList[10005];
int stack[10005],sn;
int dfn[10005],low[10005],vist[10005],deep,flog,n;
void addNode(List &p,int uu)
{
List q=(List)malloc(sizeof(list));
q->u=uu;
q->next=p->next;
p->next=q;
}
void DFS(int v)
{
List p=linkList[v]->next;
deep++; vist[v]=1;
stack[++sn]=v;
dfn[v]=low[v]=deep; while(p!=NULL)
{
int u=p->u;
if(vist[u]==0)
{
DFS(u);
low[v]=(low[v]<low[u])?low[v]:low[u];
if(flog) return ;
}
else low[v]=(low[v]<dfn[u])?low[v]:dfn[u];
p=p->next;
}
if(low[v]==dfn[v])//表示在栈中的当前点到栈顶的点组成一个强连通
{
if(v!=1)flog=1;//假设v!=1表明可能有多个强连通
else if(sn!=n)flog=1;//v=1了可是这个强连通中点的个数为sn个
}
}
int main()
{
int m,v,u;
while(scanf("%d%d",&n,&m)>0&&n+m!=0)
{
for(int i=1; i<=n; i++)
{
linkList[i]=(List)malloc(sizeof(list));
vist[i]=0; linkList[i]->next=NULL;
}
while(m--)
{
scanf("%d%d",&v,&u);
addNode(linkList[v],u);
}
flog=0; deep=0; sn=0;
DFS(1);
if(flog)printf("No\n");
else printf("Yes\n");
}
}
hdu1269迷宫城堡 (强连通Tarjan+邻接表)的更多相关文章
- HDU1269迷宫城堡(裸Tarjan有向图求强连通分量个数)
迷宫城堡Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- HDU1269 迷宫城堡 —— 强连通分量
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU11269 迷宫城堡(强连通分量)
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU1269 迷宫城堡 2016-07-24 13:47 84人阅读 评论(0) 收藏
迷宫城堡 Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的 ...
- HDU-1269 迷宫城堡(连通分量)
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- hdu 1269 迷宫城堡 强连通分量
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU1269 迷宫城堡(裸强连通分量)
Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A ...
- HDU1269 迷宫城堡
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- 【HDOJ 1269】迷宫城堡(tarjan模板题)
Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若 ...
随机推荐
- csu 1551(线段树+DP)
1551: Longest Increasing Subsequence Again Time Limit: 2 Sec Memory Limit: 256 MBSubmit: 267 Solve ...
- csu 1556(快速幂)
1556: Jerry's trouble Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 787 Solved: 317[Submit][Statu ...
- 我所遇到的C++连接问题汇总
http://blog.sina.com.cn/s/blog_7caa399301017k1e.html 1:无法打开kernel32.lib 针对不同版本的VS,lib库所在的地方都不一样,所以首先 ...
- python中的any和all函数
any和all函数是判断一组数据真假性的综合结果.以下摘选自Stackoverflow. ------------------ 分割线开始 ----------------- any any will ...
- django的orm获取字段去重值
如果要用django的ORM获取一个表字段所有可能的去重值. 网上找了很多,都是用distinct关键字,但如何没有随后的order_by, 还是达不到要求的. 最后搞定. 参考URL http:// ...
- 一个简单的AboutMe页面
Web2.0程序设计的小练习. Firefox下的效果 Chrome下的效果,套上了Helvetica,不知道为什么FF没有 (其实好像应该再优先加个Helvetica Neue的……呃……) 代码和 ...
- iOS控制器与视图加载方法
转载记录, 请看原文: 1. iOS中的各种加载方法(initWithNibName,loadNibNamed,initWithCoder,awakeFromNib等等)简单使用 http://w ...
- bzoj 1115 转换+阶梯博弈
思路:我打了半天的表找规律.... 我们将每两个数的差值看成一堆堆石子,那么题目实际上就变为了 从当前堆可以拿出一些石子放到下一堆里去,就变成了一个阶梯博弈... #include<bits/ ...
- Ubuntu编译安装nginx,php,mysql
摘要: 整理的Ubuntu编译安装nginx,php,mysql的步骤,主要来自对驻云的sh-1.4.1中脚本的整理,随时代进步,内容中的软件或者命令请自行更新 目录准备 创建用户 userdel w ...
- SQL必知必会 -------- 通配符、计算字段、函数
1.LIKE操作符 1.1百分号(%)通配符 SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE 'Fish%' 此例子使用了搜索 ...