强联通 poj 2762
t个样例 (注意清零)
n个点m条边 有向;
任意2点是否能从a->b或者b->a;
Yes No
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<queue>
#include<math.h>
#include<stack> using namespace std; #define MAXN 20000
#define MAXN1 10000
int cnt,k,num;
struct edg
{
int next,to,fr; }x[MAXN+];
int head[MAXN1],dfn[MAXN1],low[MAXN1],f[MAXN1];
bool vis[MAXN1];
int in[MAXN1]; void add(int u,int v)
{
x[cnt].fr=u;
x[cnt].next=head[u];
x[cnt].to=v;
head[u]=cnt++;
}
stack<int>s; void dfs(int u)
{
low[u]=dfn[u]=k++;
s.push(u);
vis[u]=;
int i;
for(i=head[u];i!=-;i=x[i].next)
{
if(!dfn[x[i].to])
{
dfs(x[i].to);
low[u]=min(low[u],low[x[i].to]);
}
else if(vis[x[i].to])
low[u]=min(low[u],dfn[x[i].to]);
}
if(low[u]==dfn[u]) //强联通分量
{
num++;
while(!s.empty())
{
int now=s.top();
s.pop();
f[now]=num; //新的点
vis[now]=;
if(u==now)break;
}
}
}
queue<int>q1; int judge()
{
int i;
while(!q1.empty())q1.pop(); //很重要
for(i=;i<=num;i++)
{
if(!in[i])
q1.push(i);
}
if(q1.size()>)return ; //入度为0的点1个 while(!q1.empty())
{
int now=q1.front();
q1.pop();
for(i=head[now];i!=-;i=x[i].next)
{
in[x[i].to]--;
if(!in[x[i].to])
q1.push(x[i].to);
}
if(q1.size()>)return ;
}
return ;
} int main()
{
int t;
scanf("%d",&t); while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
int i;
memset(head,-,sizeof(head));
cnt=;
for(i=;i<=m;i++)
{
int a,b;
scanf("%d%d",&a,&b);
add(a,b);
}
k=;
num=;
while(!s.empty())s.pop();
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(vis,,sizeof(vis));
memset(f,,sizeof(f));
for(i=;i<=n;i++)
{
if(!dfn[i])
dfs(i);
}
int en=cnt;
memset(head,-,sizeof(head));
memset(in,,sizeof(in));
cnt=;
for(i=;i<en;i++) //重新建图
{
int a,b;
a=f[x[i].fr];
b=f[x[i].to];
if(a!=b)
{
add(a,b);
in[b]++;
}
}
if(judge())
printf("Yes\n");
else
printf("No\n");
} return ;
}
强联通 poj 2762的更多相关文章
- POJ 1236-Network of Schools (图论-有向图强联通tarjan)
		
题目链接:http://poj.org/problem?id=1236 题目大意:N(2<N<100)个学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输.问题 ...
 - POJ 2186-Popular Cows (图论-强联通分量Korasaju算法)
		
题目链接:http://poj.org/problem?id=2186 题目大意:有n头牛和m对关系, 每一对关系有两个数(a, b)代表a牛认为b牛是“受欢迎”的,且这种关系具有传递性, 如果a牛认 ...
 - 【POJ 1236 Network of Schools】强联通分量问题 Tarjan算法,缩点
		
题目链接:http://poj.org/problem?id=1236 题意:给定一个表示n所学校网络连通关系的有向图.现要通过网络分发软件,规则是:若顶点u,v存在通路,发给u,则v可以通过网络从u ...
 - POJ 2186 Popular Cows (强联通)
		
id=2186">http://poj.org/problem? id=2186 Popular Cows Time Limit: 2000MS Memory Limit: 655 ...
 - POJ 2186 Popular Cows(强联通分量)
		
题目链接:http://poj.org/problem?id=2186 题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种 ...
 - (连通图  缩点 强联通分支)Popular Cows -- poj --2186
		
http://poj.org/problem?id=2186 Description Every cow's dream is to become the most popular cow in th ...
 - POJ 2186 Popular cows(Kosaraju+强联通分量模板)
		
题目链接:http://poj.org/problem?id=2186 题目大意:给定N头牛和M个有序对(A,B),(A,B)表示A牛认为B牛是红人,该关系具有传递性,如果牛A认为牛B是红人,牛B认为 ...
 - POJ 1904 King's Quest 强联通分量+输入输出外挂
		
题意:国王有n个儿子,现在这n个儿子要在n个女孩里选择自己喜欢的,有的儿子可能喜欢多个,最后国王的向导给出他一个匹配.匹配有n个数,代表某个儿子和哪个女孩可以结婚.已知这些条件,要你找出每个儿子可以和 ...
 - POJ 3180  The Cow Prom(强联通)
		
题目大意: 约翰的N(2≤N≤10000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别上鲜花,她们要表演圆舞. 只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一个圆形的 ...
 
随机推荐
- POJ2743Mobile Computing[DFS 状态压缩]
			
Mobile Computing Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 666 Accepted: 224 ...
 - python pyperclip模块的使用
			
用途: 复制,粘贴 用法: >>> import pyperclip >>> pyperclip.copy('Hello world!') >>> ...
 - AC日记——找最大数序列 openjudge 1.9 10
			
10:找最大数序列 总时间限制: 1000ms 内存限制: 65536kB 描述 输入n行,每行不超过100个无符号整数,无符号数不超过4位.请输出最大整数以及最大整数所在的行号(行号从1开始). ...
 - C# 事件编程在游戏开发的应用
			
2D碰撞检测:http://wenku.baidu.com/view/45544cfcfab069dc50220145.html 1.Action System.Action 等于快捷创建一个委托 2 ...
 - [No000029]程序员的那些事儿 -- 皆大欢喜的加薪
			
我的朋友A君是个典型的.NET开发人员,技术不错,人品也不错,在一家小公司(姑且称为甲公司)做项目开发,是技术骨干. 3个月前,他找到我说想跳槽,让我帮忙介绍工作.我说为什么想跳了? 1. 为什么想离 ...
 - android 下载文件
			
import com.example.android.R; import android.app.Activity;import android.os.Bundle;import android.os ...
 - 如何在Actionbarsherlock中一直显示overflow效果?
			
对Android开发一致性有一定考虑的程序员应当或多或少对Actionbarsherlock这个库有一定的了解.Actionbarsherlock的产生是因为Android在3.0(API 11)之后 ...
 - iOS NSFileManager 使用详解
			
使用NSFileManager 文件系统接口 允许访问文件夹内容 创建 重命名 删除文件 修改文件和文件属性,以及Finder对所有文件系统任务执行的一般操作. 访问NSFileManager,使用共 ...
 - KindEditor得不到textarea值的解决方法
			
转自:http://blog.phpha.com/archives/510.html 以前有朋友遇到过这个问题,就是KindEditor在火狐下或者其他浏览器下都无法得到textarea文本框的值,点 ...
 - HTTP04--CDN知识
			
一.CDN用途及概念 目的: CDN是内容分布网路(Content Delivery Network)的简称,目的是将网站内容发布到最接近用户的边缘,使用户就近获取内容,提高相应速度. 使用机制: 目 ...