题目描述

每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶

牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果A喜

欢B,B喜欢C,那么A也喜欢C。牛栏里共有N 头奶牛,给定一些奶牛之间的爱慕关系,请你

算出有多少头奶牛可以当明星。

输入输出格式

输入格式:
 第一行:两个用空格分开的整数:N和M

 第二行到第M + 1行:每行两个用空格分开的整数:A和B,表示A喜欢B

输出格式:
 第一行:单独一个整数,表示明星奶牛的数量

输入输出样例

输入样例#1: 复制
3 3
1 2
2 1
2 3
输出样例#1: 复制
1
说明

只有 3 号奶牛可以做明星

【数据范围】

10%的数据N<=20, M<=50

30%的数据N<=1000,M<=20000

70%的数据N<=5000,M<=50000

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

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=100001;
int begin[maxn],next[maxn],to[maxn];
int tot,n,m;
int dfsn[maxn],low[maxn];
int stack_[maxn];
int num,cc[maxn],dis[maxn];
int put[maxn];
int flag[maxn];
void add_(int x,int y){to[++tot]=y;next[tot]=begin[x];begin[x]=tot;
}int find_(int x){for(register int i=1;i<=stack_[0];++i)if(stack_[i]==x)return true;return false;
}void tarjan(int u){dfsn[u]=low[u]=++tot;stack_[++stack_[0]]=u;for(register int i=begin[u];i;i=next[i]){int v=to[i];if(!dfsn[v]){tarjan(v);low[u]=min(low[u],low[v]);}else if(find_(v))low[u]=min(low[u],dfsn[v]);}if(low[u]==dfsn[u]){++num;cc[u]=num;while(stack_[stack_[0]]!=u){++dis[num];cc[stack_[stack_[0]]]=num;--stack_[0];}++dis[num];cc[stack_[stack_[0]]]=num;--stack_[0];  }
}int main(){scanf("%d %d",&n,&m);register int i,j;for(i=1;i<=m;++i){int a,b;scanf("%d %d",&b,&a);add_(a,b);  }for(i=1;i<=n;++i){if(!dfsn[i])tarjan(i);}for(i=1;i<=n;++i)for(j=begin[i];j;j=next[j])if(cc[i]!=cc[to[j]])++flag[cc[to[j]]];int flag2=0;for(i=1;i<=num;++i)if(!flag[i])dis[0]=dis[i],++flag2;if(flag2>=2)printf("0");if(flag2==1)printf("%d",dis[0]);return 0;
}

洛谷P2341(受欢迎的牛)题解相关推荐

  1. 洛谷 P2341 - 受欢迎的牛

    题目描述 P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G 解法: 首先,明确一下什么是明星奶牛:受欢迎的牛只可能是图中唯一的出度为0的强连通分量中的所有奶牛. 为什么? 强连 ...

  2. 洛谷P2341 受欢迎的牛

    题目链接:https://www.luogu.org/problem/show?pid=2341 解题思路: 1.首先可以想到在一个联通块内的牛都可以成为明星奶牛(互相喜欢).这样我们就可以把它们缩成 ...

  3. 洛谷 2341受欢迎的牛

    洛谷  2341受欢迎的牛 废话真多啊,就是tarjan一遍,缩强连通分量点,建好新的图之后查看是否有出度为0的点. 如果有且仅有一个,那么这一个一定是可以被所有牛喜欢的啦,用cnt数组去记录每一个强 ...

  4. 洛谷·[HAOI2006]受欢迎的牛

    初见安~这里是传送门:洛谷P2341 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的"喜欢" ...

  5. 洛谷P5520 [yLOI2019] 青原樱 题解

    洛谷P5520 [yLOI2019] 青原樱 题解 题目链接:P5520 [yLOI2019] 青原樱 题意: n n n 个空放 m m m 个物品,两两物品不能直接相邻,至少空一格 纯数学题. 看 ...

  6. 洛谷P5633 最小度限制生成树 题解

    洛谷P5633 最小度限制生成树 题解 题目链接:P5633 最小度限制生成树 题意: 给你一个有 n n n 个节点, m m m 条边的带权无向图,你需要求得一个生成树,使边权总和最小,且满足编号 ...

  7. 洛谷P2619 [国家集训队]Tree I 题解

    洛谷P2619 [国家集训队]Tree I 题解 题目链接:P2619 [国家集训队]Tree I 题意: 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有 need\text{n ...

  8. 洛谷P1282 多米诺骨牌 题解

    洛谷P1282 多米诺骨牌 题解 题目链接:P1282 多米诺骨牌 题意: 多米诺骨牌由上下 222 个方块组成,每个方块中有 1∼61\sim61∼6 个点.现有排成行的上方块中点数之和记为 S1S ...

  9. 洛谷P4084 [USACO17DEC]Barn Painting G 题解

    洛谷P4084 [USACO17DEC]Barn Painting G 题解 题目链接:P4084 [USACO17DEC]Barn Painting G 题意:题意:给定一颗N个节点组成的树,3种颜 ...

  10. 洛谷P3237 [HNOI2014]米特运输 题解

    洛谷P3237 [HNOI2014]米特运输 题解 题目链接:P3237 [HNOI2014]米特运输 题意: 这题面是真的长啊 qwq 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为 ...

最新文章

  1. 并行计算实战-双调排序
  2. 2.pandas数据清洗
  3. 构建之法读书笔记03
  4. git 查看某个文件的历史记录
  5. 照片处理软件(iSee图片专家) 3.930 中文免费版
  6. golang安装beego报错:go: cannot use path@version syntax in GOPATH mode
  7. HNOI2017 游记
  8. 自动化集成:Jenkins管理工具详解
  9. HDU 4622 求解区间字符串中的不同子串的个数
  10. 大萧条来临前的几大征兆
  11. 简易发号SQL,可用于生成指定前缀自增序列,如订单号,生成优惠券码等
  12. mongodb lbs java_Spring-MongoDB与LBS
  13. yyuc php,yyuc 开发手册.zip 框架 说明指南 Windows Develop 238万源代码下载- www.pudn.com...
  14. XTU OJ 1395
  15. 邮件中的FYI和PFA代表什么意思
  16. 云图说 | 勒索病毒防治解决方案
  17. 计算机自动执行的条件是,电脑中winsat.exe进程总会自动运行的解决方法
  18. Spring自定义参数解析器
  19. Kafka配置SASL_SSL认证传输加密
  20. 职场上被人针对要不要告诉领导

热门文章

  1. S32K148----SDK笔记----LwIP以太网测试
  2. 海归首选“北广” 薪酬期望值不要太高 元芳你怎么看?
  3. Android耗电量线下监控: Battery Historian
  4. convert命令FAT32转NTFS(不影响硬盘数据)
  5. Thymeleaf 标签学习 之 th:text 和 th:utext 的使用
  6. 漫画 | 为什么中国没有搞出浏览器引擎?
  7. 原生js实现元素拖拽onmousedown/onmousemove/onmouseup
  8. 怎么找计算机里面的视频教程,win7系统快速搜索查找电脑里的视频文件的办法...
  9. 惊!女装大佬项目登 GitHub Top 1!
  10. 汽车销售技巧培训讲师 司铭宇老师简介