强连通分量题,用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 开发第三天

    今天学习的内容

  2. 【排障】每次打开word都提示要安装配置

    为什么每次打开word都提示要安装配置?很多人在打开word时,总是提示要安装配置一遍,花去不少时间,这是由于电脑里有两个不同版本的office软件,产生的原因可能是原来的卸载了没卸载干净,或是安装了 ...

  3. cobbler部署

    1.cobbler介绍 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的 ...

  4. 读《编写高质量代码:改善JavaScript程序的188个建议》1

    建议3:减少全局变量污染 定义全局变量有3种方式: ❑在任何函数外面直接执行var语句. var f='value'; ❑直接添加一个属性到全局对象上.全局对象是所有全局变量的容器.在Web浏览器中, ...

  5. JSP EL表达式详细介绍

    一.JSP EL语言定义 E L(Expression Language)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 ...

  6. myeclipse启动报JVM terminated. Exit code=1

    报错信息如图: 解决办法: 删除当前workspaces下文件夹,路径为:%Workspaces%/.metadata/.plugins/org.eclipse.core.runtime

  7. MyEclipse 多项目对应配置多个Tomcat

    在MyEclipse的安装目录下,有D:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins 的插件路径. 里边很多插件的配置文件包.   找到 ...

  8. 04_过滤器Filter_02_Filter解决中文乱码问题

    [过滤器解决中文乱码问题实例] [工程截图] [web.xml] <?xml version="1.0" encoding="UTF-8"?> &l ...

  9. 使用Idea编写javaweb以及maven的综合(一)

    今天总结的第一点是在windows下使用idea编写jsp并且使用tomcat部署:第二点是新建maven项目,之前一直是听说也没有自己实践过,今天就大概说一下. 0x01 IDEA 全称 Intel ...

  10. SQL的经典操作——批量复制同行的其它列数据到其它列数据

    看图说话比较直观: 对比复制前后的数据表: 使用SQL语句:UPDATE OR ROLLBACK Content SET YINBIAO = YINBIAO2, GESHU = GESHU2 WHER ...