题目链接:http://poj.org/problem?id=2186

求有多少个点满足其他n-1个点都能到达这个点,是单向图;

所以我们可以把图进行缩点,之后求出度为0的那个点内包含的点的个数就是求得答案;

如果出度为0的不止一个,那么答案为0;

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#define N 10010
#define Lson r*2
#define Rson r*2+1
#define INF 0xfffffff
using namespace std; int Stack[N], top, Out[N], Time, flag;
int nBlock, Block[N], dfn[N], low[N], Is[N], n, Head[N], cnt; struct Edge
{
int v, next;
}e[N*N];
void Init()
{
nBlock = cnt = top = Time = flag = ;
memset(Head, -, sizeof(Head));
memset(low, , sizeof(low));
memset(dfn, , sizeof(dfn));
memset(Block, , sizeof(Block));
memset(Out, , sizeof(Out));
memset(Is, , sizeof(Is));
memset(Stack, , sizeof(Stack));
}
void Add(int u, int v)
{
e[cnt].v=v;
e[cnt].next=Head[u];
Head[u]=cnt++;
}
void Tajar(int u)
{
dfn[u]=low[u]=++Time;
Is[u]=;
Stack[top++]=u;
int v;
for(int i=Head[u]; i!=-; i=e[i].next)
{
v=e[i].v;
if(!dfn[v])
{
Tajar(v);
low[u]=min(low[u], low[v]);
}
else if(Is[v])
{
low[u]=min(low[u], dfn[v]);
}
}
if(low[u]==dfn[u])
{
++nBlock;
do
{
v=Stack[--top];
Is[v] = ;
Block[v]=nBlock;
}while(u!=v);
}
}
int main()
{
int u, v, m;
while(scanf("%d%d", &n, &m)!=EOF)
{
Init();
for(int i=; i<m; i++)
{
scanf("%d%d", &u, &v);
Add(u,v);
}
for(int i=; i<=n; i++)
if(!low[i])
{
Tajar(i);
}
for(int i=; i<=n; i++)
{
for(int j=Head[i]; j!=-; j=e[j].next)
{
u=Block[i]; v=Block[e[j].v];
if(u!=v)
Out[u]++;
}
}
flag=;
int Index;
for(int i=; i<=nBlock; i++)
{
if(Out[i]==)
{
flag++;
Index=i;
}
}
if(flag>)
{
printf("0\n");
continue;
}
int ans=;
for(int i=; i<=n; i++)
{
if(Block[i]==Index)
ans++;
}
printf("%d\n", ans);
}
return ;
}

Popular Cows---poj2186(缩点,强联通)的更多相关文章

  1. (连通图 缩点 强联通分支)Popular Cows -- poj --2186

    http://poj.org/problem?id=2186 Description Every cow's dream is to become the most popular cow in th ...

  2. POJ 2168 Popular cows [Tarjan 缩点]

                                                                                                         ...

  3. USACO 2003 Fall Orange Popular Cows /// tarjan缩点 oj22833

    题目大意: n头牛,m个崇拜关系,并且崇拜具有传递性 如果a崇拜b,b崇拜c,则a崇拜c 求最后有几头牛被所有牛崇拜 强连通分量内任意两点都能互达 所以只要强联通分量内有一点是 那么其它点也都会是 按 ...

  4. [poj2186]Popular Cows(targin缩点)

    题意:求其他所有牛都认为其牛的牛的个数. 解题关键:targin算法模板题,缩点形成一棵树,并不一定是棵树,可能含有多个入度为0的点,寻找出度为0的点(缩点之后的点)的个数,如果个数大于0,则无解,否 ...

  5. POJ 2186 Popular cows(SCC 缩点)

    Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= 10, ...

  6. POJ 2186 Popular Cows tarjan缩点算法

    题意:给出一个有向图代表牛和牛喜欢的关系,且喜欢关系具有传递性,求出能被所有牛喜欢的牛的总数(除了它自己以外的牛,或者它很自恋). 思路:这个的难处在于这是一个有环的图,对此我们可以使用tarjan算 ...

  7. POJ 2186 Popular Cows(强联通+缩点)

    Description Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= ...

  8. 强连通分量tarjan缩点——POJ2186 Popular Cows

    这里的Tarjan是基于DFS,用于求有向图的强联通分量. 运用了一个点dfn时间戳和low的关系巧妙地判断出一个强联通分量,从而实现一次DFS即可求出所有的强联通分量. §有向图中, u可达v不一定 ...

  9. POJ 2186 Popular Cows (强联通)

    id=2186">http://poj.org/problem? id=2186 Popular Cows Time Limit: 2000MS   Memory Limit: 655 ...

  10. 【Tarjan缩点】POJ2186 Popular Cows

    Popular Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 35644   Accepted: 14532 De ...

随机推荐

  1. c++ json cpp

    一 编译链接 1 在相应官网下载jsoncpp 2 解压得到jsoncpp-src-0.5.0文件 3 打开jsoncpp-src-0.5.0 -> makefiles -> vs71 - ...

  2. 【View】之【SimpleWaveView】可多色可刷新的加速球、进度球【demo】

    当前版本:SimpleWaveView_v1.0.20140618 先看效果图,这个加速球是动态的,并且当调用了myView.setRefresh(0.8F);方法后可以从当前值动态降到0再升到80% ...

  3. 对ChemDraw Prime 16.0你了解多少

    ChemDraw Prime 16.0应用是化学智能绘图程序的行业领导者.除了创建符合出版标准的绘图,化学家们可以使用ChemDraw Prime软件预测性能,搜索数据库等来节省时间,提高数据的准确性 ...

  4. 【java】 java 中stop方法终止线程的不良后果

    stop()方法属于暴力终止线程的方法,有诸多隐患已经被废弃了. 下面演示的是stop方法会释放锁,造成数据不一致的问题. package com.xwolf.java.thread; /** * C ...

  5. 几张图轻松理解String.intern()

    https://blog.csdn.net/soonfly/article/details/70147205 在翻<深入理解Java虚拟机>的书时,又看到了2-7的 String.inte ...

  6. 【RF库Collections测试】Create Dictionary

    Name:Create DictionarySource:Collections <test library>Arguments:[ *key_value_pairs ]

  7. django 错误分类及解决办法汇总

    问题1:启动服务器后浏览器无法访问http://localhost:8000,访问被拒绝

  8. vsftpd配置教程

    原文:http://www.cnblogs.com/hhuai/archive/2011/02/12/1952647.html 可能会遇到的问题: http://www.cnblogs.com/wea ...

  9. java运行显示“找不到或无法加载主类”的解决办法(linux)

    要是配置文件的路径问题.打开终端,输入vi ~/.bashrc添加如下代码即可. # set Java environmentJAVA_HOME=/usr/local/java/jdk1.8.0PAT ...

  10. Android 计算器

    首先在activity_main.xml加入一个EditText 通过xml的方式来沈成一个图像在drawable中新建一个white_bg.xml文件,同时选择一个shape标签corners设置圆 ...