强连通分量题,用tarjin算法;

这是一道很简单的tarjin算法题,基本上就是套模板;

贴代码:

#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#define maxn 10005
using namespace std;
vector<int>ve[maxn];
int dfn[maxn],low[maxn],ans,n,m,nncount;
bool instack[maxn],vis[maxn];
stack<int>q;
void tarjin(int x)
{
dfn[x]=low[x]=++nncount;
vis[x]=,instack[x]=;
q.push(x);
int l=ve[x].size();
for(int i=; i<l; i++)
{
int v=ve[x][i];
if(!vis[v])
{
tarjin(v);
low[x]=min(low[x],low[v]);
}
else if(instack[v])
low[x]=min(low[x],dfn[v]);
}
if(low[x]==dfn[x])
{
ans++;
int v;
do
{
v=q.top();
q.pop();
instack[v]=;
}
while(v!=x);
}
} int main()
{
int x,y;
while(scanf("%d%d",&n,&m)&&(m+n))
{
for(int i=; i<=n; i++)
{
ve[i].clear();
instack[i]=vis[i]=;
}
while(!q.empty()) q.pop();
for(int i=; i<m; i++)
{
scanf("%d%d",&x,&y);
ve[x].push_back(y);
}
nncount=ans=;
for(int i=; i<=n; i++)
if(!vis[i]) tarjin(i);
if(ans==) puts("Yes");
else puts("No");
}
return ;
}

其实这道题还可以用并查集来做;

维护两个数组,一个找儿子,一个找爸爸就行;

我也是参考别人的代码写的;

不过挺不错的,好好学习了下!

 #include<cstdio>
using namespace std;
int f[],d[],n,m;
int find1(int x)
{
if(x!=&&f[x]!=x)
f[x]=find1(f[x]);
return f[x];
} int find2(int x)
{
if(x!=&&d[x]!=x)
d[x]=find2(d[x]);
return d[x];
} void uni(int x,int y)
{
if(x>) f[x]=find1(y);
if(y>) d[y]=find2(x);
} bool judge()
{
for(int i=; i<=n; i++)
if(find1(i)!=||find2(i)!=)
return ;
return ;
} int main()
{
int x,y;
while(scanf("%d%d",&n,&m)&&(n+m))
{
for(int i=; i<=n; i++)
f[i]=i,d[i]=i;
for(int i=; i<m; i++)
{
scanf("%d%d",&x,&y);
uni(x,y);
}
if(judge()) puts("No");
else puts("Yes");
}
return ;
}

hdu 1269的更多相关文章

  1. HDU 1269 迷宫城堡(强连通)

    HDU 1269 迷宫城堡 pid=1269" target="_blank" style="">题目链接 题意:中文题 思路:强连通模板题 代 ...

  2. HDU 1269 迷宫城堡 (Kosaraju)

    题目链接:HDU 1269 Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000), ...

  3. Hdu 1269 强连通判定

    题目链接 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  4. 连通图模板(HDU 1269)

    http://acm.hdu.edu.cn/showproblem.php?pid=1269 题目大意:给定一个图,判断该图是否是强连通图.(强连通图为从任意一点出发,可到达其他所有点).深搜的Tar ...

  5. HDU 1269:迷宫城堡(强连通)

    http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:确定是否是一个强连通图. 思路:裸的tarjan算法. #include <cstdio> ...

  6. hdu 1269 迷宫城堡

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1269 迷宫城堡 Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个 ...

  7. hdu - 1269 迷宫城堡 (强连通裸题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1269 判断一个图是不是强连通,缩点之后判断顶点数是不是为1即可. #include <iostream&g ...

  8. hdu 1269 迷宫城堡(trajan判环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 题意:略 题解:trajan模版直接求强连通分量. #include <iostream& ...

  9. hdu 1269 迷宫城堡 强连通分量

    迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  10. HDU 1269 迷宫城堡(判断有向图强连通分量的个数,tarjan算法)

    迷宫城堡 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

随机推荐

  1. Android(java)学习笔记157:使用Dexdump等工具进行反编译

    使用Dex等工具进行反编译步骤: (1)首先找到Android软件安装包中的class.dex,把APK文件改名为".zip",然后解压缩其中的class.dex文件,这是Java ...

  2. PHP中的超级全局变量

    PHP内置了一些超级全局变量,我们可以在脚本的任何地方使用和可见,下面记录一下这些全局变量的作用: 1.$_SERVER $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户 ...

  3. 爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影

    本教程由"做全栈攻城狮"原创首发,本人大学生一枚平时还需要上课,但尽量每日更新文章教程.一方面把我所习得的知识分享出来,希望能对初学者有所帮助.另一方面总结自己所学,以备以后查看. ...

  4. c语言学习之基础知识点介绍(十四):指针的进阶

    一.指针的加.减法运算 /* 1.加法运算 1).可以跟整数进行加法运算,得到的还是一个地址 公式: 地址 + 1 = 地址 + 1 * 类型所占的字节数 地址 + n = 地址 + n * 类型所占 ...

  5. DataTable.ImportRow()与DataTable.Rows.Add()的区别

    今天写代码的时候用到ImportRow()向DataTable中添加记录,代码如下: DataTable dt = datatable;DataRow dr = dt.NewRow();dr[&quo ...

  6. redis基本数据类型【3】-List类型

    列表类型采用双向链表实现的,借助列表类型redis还可以作为队列使用,一个列表类型key最多能容纳2^32-1个元素 1.向列表两端增加元素 #向左边增加元素,返回增加后列表的长度 lpush key ...

  7. c++ 中的8种智能指针[转]

    一.简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete.程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 ...

  8. ASP.Net大文件上传组件详解

    首先右键单击网站根目录,在弹出的快捷菜单中,选择"添加引用"菜单项,弹出"添加引用",切换到"浏览"找到组件的Dll文件"Best ...

  9. C#控件命名规范

    文档名称: C#控件命名规范 撰写作者: codefly 版本编号: V1.1 C#控件命名规范 一.Data Control 类型 前缀 示例 AccessDataSource ads adsPub ...

  10. windows+apache2.2.9+php5.4.41+mysql安装

    安装Apache(D盘根目录下) (1)打开D:\Apache24\conf下httpd.conf 文件,用记事本打开编辑作如下修改并保存. 第37行ServerRoot "c:/Apach ...