1051: [HAOI2006]受欢迎的牛

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 3134  Solved: 1642
[Submit][Status][Discuss]

Description

每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。

Input

第一行两个数N,M。 接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复,即有可能出现多个A,B)

Output

一个数,即有多少头牛被所有的牛认为是受欢迎的。

Sample Input

3 3
1 2
2 1
2 3

Sample Output

1

HINT

100%的数据N<=10000,M<=50000

  很久之前做过的一道题目。。
  具体就是先tarjan缩点,点的权值就是这个连通分量的点的数量
  然后找入度为0的点
  只有一个就输出它的权值
  多个就输0
 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath> #define maxn 10001 using namespace std; inline int In()
{
int x=;char ch=getchar();
while(ch<''||ch>'')ch=getchar();
while(ch>=''&&ch<='')x=x*+ch-'',ch=getchar();
return x;
} struct ed{
int u,v;
}edge[maxn*]; struct node{
int to,last;
}e[maxn*]; int last[maxn],tot=,dfn[maxn],low[maxn],father[maxn],sta[maxn],top=,cnt=,size=,num[maxn],in[maxn]; bool ins[maxn]; void add(int u,int v){e[++tot].to=v,e[tot].last=last[u],last[u]=tot;} void tarjan(int poi)
{
dfn[poi]=low[poi]=++cnt;
ins[poi]=;sta[++top]=poi;
for(int i=last[poi];i;i=e[i].last)
{
int u=e[i].to;
if(!dfn[u])
{
tarjan(u);
low[poi]=min(low[u],low[poi]);
}
else if(ins[u]) low[poi]=min(low[poi],dfn[u]);
}
if(dfn[poi]==low[poi])
{
size++;
int vv;
do{
vv=sta[top];
father[vv]=size;
ins[vv]=;
num[size]++;
top--;
}while(vv!=poi);
}
} int main()
{
freopen("1051.in","r",stdin);
int n,m,str=;
n=In(),m=In();
for(int i=;i<=n;i++)father[i]=i;
for(int i=;i<=m;i++)
edge[i].u=In(),edge[i].v=In(),add(edge[i].u,edge[i].v);
for(int i=;i<=n;i++)if(!dfn[i])tarjan(i);
memset(last,,sizeof(last));
tot=;
for(int i=;i<=m;i++)if(father[edge[i].u]!=father[edge[i].v]){
in[father[edge[i].u]]++;
}
for(int i=;i<=size;i++)
{
if(!in[i]&&str){printf("");return ;}
if(!in[i])str=i;
}
printf("%d",num[str]);
return ;
}

【tarjan】BZOJ 1051:受欢迎的牛的更多相关文章

  1. BZOJ 1051 受欢迎的牛(Tarjan缩点)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4573  Solved: 2428 [Submit][S ...

  2. BZOJ 1051 受欢迎的牛

    Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...

  3. BZOJ 1051 受欢迎的牛 缩点

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1051 题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数( ...

  4. bzoj 1051 受欢迎的牛-tarjan

    https://www.lydsy.com/JudgeOnline/problem.php?id=1051 如果A喜欢B,那么A->B连边,那么整个图储存下来,如果有好多个牛是受欢迎的,那么他们 ...

  5. 【BZOJ】1051: [HAOI2006]受欢迎的牛(tarjan)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1051 这题还好-1A了..但是前提还是看了题解的 囧.....一开始认为是并查集,oh,不行,,无法 ...

  6. bzoj 1051: [HAOI2006]受欢迎的牛 tarjan缩点

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2092  Solved: 1096[Submit][Sta ...

  7. BZOJ 1051: [HAOI2006]受欢迎的牛( tarjan )

    tarjan缩点后, 有且仅有一个出度为0的强连通分量即answer, 否则无解 ----------------------------------------------------------- ...

  8. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  9. BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8172  Solved: 4470[Submit][Sta ...

随机推荐

  1. 百度编辑器ueditor代码高亮效果前台不显示的解决方法

    原因是你没有在你的内容页加载相应的css文件,这要如何解决呢? 经测试,只要插入以下两个文件即可解决问题: <link href="你的ueditor路径/ueditor/third- ...

  2. OSPF_Network-type

    OSPF的网络类型 目录 OSPF的网络类型... 1 总实验拓扑如下... 2 Router模拟帧中继交换机(所有网路为星型)... 2 配置映射... 3 广播模式下的OSPF. 4 非广播模式下 ...

  3. Xcode7,消失的pin菜单(Editor->pin)

    用过autolayout的对pin都应该不陌生,通过这个选项可以设置控件的四周的外边距:Top Space.Leading Space.Trailing Space.Bottom Space. 在Xc ...

  4. 在浏览器中打开本地应用(iOS)

    在浏览器中点击跳转到本地应用的方法(如果本地没有安装的话) 然后在浏览器中输入tianxiang://就能打开这个应用了 ................省略 遇到一个12年还是初中的小朋友,

  5. c++11之右值引用

    本文大部分来自这里,并不是完全着行翻译,如有不明白的地方请参考原文. 在c++中,创建临时对象的开销对程序的影响一直很大,比如以下这个例子: String getName(){ return “Kia ...

  6. 自动化测试平台CATP

    CATP:报文类工具,可以测试功能

  7. Headfirst设计模式的C++实现——观察者模式(Observer)

    WeatherData.h #ifndef WEATHERDATA_H_INCLUDED #define WEATHERDATA_H_INCLUDED #include <set> #in ...

  8. arm汇编指令总结(不断更新)

    /** ****************************************************************************** * @author    Maox ...

  9. 添加远程链接MySQL的权限

    mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; 权限1,权限2,…权限n代表select,ins ...

  10. MySQL 性能优化

    内容简介:这是一篇关于mysql 性能,mysql性能优化,mysql 性能优化的文章.网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置 ...