1051: [HAOI2006]受欢迎的牛

Time Limit: 10 Sec  Memory Limit: 162 MB

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
Tip:
  这题还是比较经典的tarjan缩点模板题;
  如果A认为B是受欢迎的,那么连A->B;
  将整个图缩点,变成了一个有向无环图;
  如果缩点后的图中点的出度=0的点数大于2个,则没有答案,没有任何一头奶牛能被所有奶牛认可;
                  1个,则答案即那个强连通分量里的点的数量;
Code
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#define MAXN 100008
using namespace std;
int n,m,hh[MAXN],head[MAXN],vet[MAXN],next[MAXN],tot,dfn[MAXN],low[MAXN],color[MAXN];
int tot1,num[MAXN],str[MAXN],cnt,boo[MAXN],top,belong[MAXN],tim;void add(int x,int y){tot++;hh[tot]=x;next[tot]=head[x];head[x]=tot;vet[tot]=y;
}void tarjan(int u){tim++;dfn[u]=low[u]=tim;boo[u]=color[u]=1;str[++top]=u;for(int i=head[u];i!=-1;i=next[i]){int y=vet[i];if(color[y]==0){tarjan(y);low[u]=min(low[u],low[y]);}else{if(boo[y])low[u]=min(low[u],dfn[y]);}}color[u]=2;if(dfn[u]==low[u]){cnt++;int v;do{v=str[top--];belong[v]=cnt;boo[v]=1;}while(v!=u&&top>0);}
}int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)head[i]=-1;for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);add(x,y);}for(int i=1;i<=n;i++)if(!dfn[i]){tarjan(i);}for(int i=1;i<=tot;i++){if(belong[hh[i]]!=belong[vet[i]]){num[belong[hh[i]]]++;}}int ans=0,flag;for(int i=1;i<=cnt;i++){if(num[i]==0){ans++;if(ans>1){printf("0");return 0;}flag=i;}}if(ans==1){int res=0;for(int i=1;i<=n;i++)if(belong[i]==flag)res++;printf("%d",res);}else{printf("0");}
}

  

转载于:https://www.cnblogs.com/WQHui/p/7475466.html

bzoj1051 [HAOI2006]受欢迎的牛相关推荐

  1. bzoj1051: [HAOI2006]受欢迎的牛

    tarjan缩点.判断是否只有一个没有出边.是则输出该点点数 #include<cstdio> #include<cstring> #include<iostream&g ...

  2. BZOJ1051|HAOI2006受欢迎的牛|强连通分量

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

  3. BZOJ1051 [HAOI2006]受欢迎的牛 Tarjan 强连通缩点

    欢迎访问~原文出处--博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1051 题意概括 有n只牛,有m个羡慕关系. 羡慕关系具有传递性. 如果A羡慕B,B羡慕C,那么我们 ...

  4. bzoj1051 [HAOI2006]受欢迎的牛 tarjan缩点

    题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的"喜欢"是可以传递的--如果A喜 欢B,B喜 ...

  5. bzoj1051: [HAOI2006]受欢迎的牛(tarjan强连通分量)

    强连通缩下点,出度为0有多个答案为0,否则答案为出度为0的强连通分量中点的个数. 发现一道tarjan模板题,顺便复习一波tarjan #include<iostream> #includ ...

  6. BZOJ1051 HAOI2006受欢迎的牛

    请原谅我,这题实在和bzoj1093太像 了,copy过来改一改,很多没有用,然后一起嘿嘿嘿~ #include<iostream> #include<cstdio> #inc ...

  7. 洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows

    P2341 [HAOI2006]受欢迎的牛/POJ2186:Popular Cows 题目背景 本题测试数据已修复. 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所 ...

  8. BZOJ 1051: [HAOI2006]受欢迎的牛

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

  9. 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)

    P2341 [HAOI2006]受欢迎的牛|[模板]强连通分量 https://www.luogu.org/problem/P2341 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就 ...

  10. BZOJ 1051: [HAOI2006]受欢迎的牛【Trajan】

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MB Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛 ...

最新文章

  1. 重磅!计算机主题征稿,【EI/SCI检索】ICCBD 2021诚邀您投稿参会!
  2. 盘点当下大热的 7 大 Github 机器学习『创新』项目
  3. 互联网音乐还有什么机会
  4. 快速使用Python连接MySQL数据库的方法
  5. 十二、“最是真心藏不住,一言一语总关情。”(2021.2.11)
  6. sdk数值与android版本,Android SdkVersion的区别及获取版本信息方法
  7. linux里的进程简介
  8. 使用Python判断文件是否为PE文件
  9. matlab编译桁架有限元计算(附有完整代码)
  10. Spring 学习记录6 BeanFactory(2)
  11. wps带阴影的边框怎么设置_wps文字加阴影边框怎么设置
  12. Unity实现多语言切换
  13. 怎么把ide改成ahci_无需重装操作系统,IDE模式轻松改成AHCI模式
  14. android shell卸载应用程序,adb shell删除系统apk
  15. matlab生成的图片里怎么加入字体,Matlab,Visio等生成的图片的字体嵌入问题解决方法...
  16. 8个成语接龙首尾相连_成语接龙该怎么接?每组开头有一个成语,要接龙,每一个词的末尾都是下一个词的开头,从 来日方长 到 取之不尽,中间要填8个...
  17. 32个FPGA开源网站
  18. vscode 左侧文件夹颜色含义
  19. 金融工程学(五):互换概述
  20. 腾讯云GPU服务器价格表出炉新鲜的

热门文章

  1. 字符串连接类(Javascript)
  2. 关于配置文件的节点内容加密(备忘)
  3. 下载MSN2009享受SkyDrive免费25G网络硬盘
  4. GNN | 从序列神经网络到GCN、GraphSage、GAT图模型总结
  5. 目前看的GNN论文的一些总结
  6. 【NLP】目前有比Topic Model更先进的聚类方式么?比如针对短文本的、加入情感分析的?...
  7. 爬虫_抓取51job招聘数据
  8. 时序算法—AR、MA、ARMA和ARIMA模型以及Auto ARIMA
  9. pytorch--nn模块(2)optim
  10. SpringCloud——负载均衡