POJ2186:Popular Cows(tarjan+缩点)
题目解析:
这题题意没什么好说的,解法也挺简单的,只要会tarjan算法+只有一个出度为0的强连通分量题目有解这题就迎刃而解了。
#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #define N 100002 using namespace std; int n,m,tt,time,cnt,e,a[N],b[N],sum[N]; struct node {int x,y;int next; } eg[1000001]; int head[N],low[N],dfn[N],f[N],instack[N],belong[N],s[N]; void init() {memset(head,-1,sizeof(head));memset(instack,0,sizeof(instack));memset(belong,0,sizeof(belong));memset(sum,0,sizeof(sum));memset(f,0,sizeof(f));tt=0;cnt=0; } void add(int xx,int yy) {eg[tt].x=xx;eg[tt].y=yy;eg[tt].next=head[xx];head[xx]=tt++; } void tarjan(int i) {int w;dfn[i]=low[i]=++time;instack[i]=1;s[++e]=i;for(int j=head[i]; j!=-1; j=eg[j].next){w=eg[j].y;if(!dfn[w]){tarjan(w);low[i]=min(low[i],low[w]);}else if(instack[w]==1){low[i]=min(low[i],dfn[w]);}}if(dfn[i]==low[i]){cnt++;do{w=s[e--];instack[w]=0;belong[w]=cnt;}while(w!=i);} } void solve() {time=e=0;memset(dfn,0,sizeof(dfn));for(int i=1; i<=n; i++){if(!dfn[i]){tarjan(i);}} } int main() {while(scanf("%d%d",&n,&m)!=EOF){init();for(int i=1; i<=m; i++){scanf("%d%d",&a[i],&b[i]);add(a[i],b[i]);}solve();for(int i=1; i<=m; i++){if(belong[a[i]]!=belong[b[i]]){f[belong[a[i]]]=1;}}for(int i=1; i<=n; i++){sum[belong[i]]++;}int V=0,count;for(int i=1; i<=cnt; i++){if(!f[i]){V++;count=sum[i];}}if(V==1) printf("%d\n",count);else printf("0\n");}return 0; }
POJ2186:Popular Cows(tarjan+缩点)相关推荐
- POJ-2186 Popular Cows (Tarjan缩点) 文末有测试数据
题目链接 NNN个牛,MMM个关系 (A,B)A(A,B)A(A,B)A认为BBB是受欢迎的.求受所有牛欢迎的牛的数量. 思路 同一个强联通分量里面的牛是相互受欢迎的,我们将所有的联通分量求出来之后, ...
- pku 2186 Popular Cows (tarjan缩点)
http://poj.org/problem?id=2186 将所有最大连通分量缩点,然后统计缩点后每个点的出度,出度为0的肯定就是了可是这个点可能是缩出来的,所以要记录这个点真正包含的点数.如果出度 ...
- 洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows
P2341 [HAOI2006]受欢迎的牛/POJ2186:Popular Cows 题目背景 本题测试数据已修复. 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所 ...
- Poj 2186 Popular Cows(Tarjan 强连通缩点)
传送门:Poj 2186 题意:给你n头牛,m种关系,A牛认为B牛是popular的,B牛认为C牛是popular的,则A也认为C是popular的,问最终有几头被所有牛认为是popular的牛 题解 ...
- POJ2186 Popular Cows【Tarjan】【强连通分量】
题目连接: http://poj.org/problem?id=2186 题目大意: 每头奶牛都希望自己成为最欢迎的那头牛.给你N头牛,M个崇拜关系(A,B).意思是牛A 崇拜牛B.特别是,如果牛A崇 ...
- POJ - 2186 Popular Cows(强连通缩点)
题目链接:点击查看 题目大意:给出n只奶牛,以及m组可传递的关系,每组关系给出一个a和一个b,表示为a->b,意思是奶牛a觉得奶牛b很酷,因为关系可传递,所以如果a->b且b->c, ...
- 【POJ - 2186】Popular Cows (Tarjan缩点)
题干: Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= N <= ...
- Popular Cows POJ - 2186(tarjan算法)+详解
题意: 每一头牛的愿望就是变成一头最受欢迎的牛.现在有 N头牛,给你M对整数(A,B),表示牛 A认为牛B受欢迎.这种关系是具有传递性的,如果 A认为 B受欢迎, B认为 C受欢迎,那么牛 A也认为牛 ...
- BZOJ 1051 受欢迎的牛(Tarjan缩点)
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4573 Solved: 2428 [Submit][S ...
最新文章
- python装饰器+迭代器+生成器
- Keepalived配置日志文件
- typora.io使用教程
- python借助missingno可视化分析缺失值
- Spring Security系列之Spring Social实现微信社交登录(九)
- Vue前端路由~非常详细哦,不要错过
- Dll中的方法向外返回dynamic类型可能会失败
- mac下charles使用教程
- PHP点餐系统源码附小程序点餐系统
- 如何提高maven的编译速度
- 高等数学:数列前后项【递推式的单调性】与【整个数列单调性】的关系
- 药品计算机数据备份管理制度,GMP丨《药品记录与数据管理要求》(试行)解读
- 环形队列、 条带环形队列 Striped-RingBuffer (史上最全)
- 【数据挖掘】-决策树算法+代码实现(七)
- vue项目中图片地址生成二维码
- 《虎虎圆桌派》第一期全程回顾
- 工商总局抽检电商 天猫1号店等仍存售假
- #RunJS# 最少代码的瀑布流实现
- 孤独真的能毁掉一个人吗?你孤独吗?
- 一本开源的程序员快速成长秘笈
热门文章
- 两个rtsp同时抓流_海康摄像头同时添加到两台海康硬盘录像机上
- SpringCloud_项目搭建以及Eureka
- 在Paddle中利用AlexNet测试CIFAR10数据集合
- 深度学习平台你知道多少?
- LM358的工作特性测试
- 第十五届全国大学生智能车竞赛百度深度学习车模
- 一款蓝牙音频无线传输设备上拆下的光电管
- 未解决计算机主机与打印机,电脑无法与打印机连接 计算机网考题目2(12)
- phoenix的元数据一般存在哪里_Phoenix常用操作记录-阿里云开发者社区
- 怎么体验华为鸿蒙系统,华为mate40升级鸿蒙系统体验_华为mate40升级鸿蒙系统使用感受...