洛谷P2341(受欢迎的牛)题解
题目描述
每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶
牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果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(受欢迎的牛)题解相关推荐
- 洛谷 P2341 - 受欢迎的牛
题目描述 P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G 解法: 首先,明确一下什么是明星奶牛:受欢迎的牛只可能是图中唯一的出度为0的强连通分量中的所有奶牛. 为什么? 强连 ...
- 洛谷P2341 受欢迎的牛
题目链接:https://www.luogu.org/problem/show?pid=2341 解题思路: 1.首先可以想到在一个联通块内的牛都可以成为明星奶牛(互相喜欢).这样我们就可以把它们缩成 ...
- 洛谷 2341受欢迎的牛
洛谷 2341受欢迎的牛 废话真多啊,就是tarjan一遍,缩强连通分量点,建好新的图之后查看是否有出度为0的点. 如果有且仅有一个,那么这一个一定是可以被所有牛喜欢的啦,用cnt数组去记录每一个强 ...
- 洛谷·[HAOI2006]受欢迎的牛
初见安~这里是传送门:洛谷P2341 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的"喜欢" ...
- 洛谷P5520 [yLOI2019] 青原樱 题解
洛谷P5520 [yLOI2019] 青原樱 题解 题目链接:P5520 [yLOI2019] 青原樱 题意: n n n 个空放 m m m 个物品,两两物品不能直接相邻,至少空一格 纯数学题. 看 ...
- 洛谷P5633 最小度限制生成树 题解
洛谷P5633 最小度限制生成树 题解 题目链接:P5633 最小度限制生成树 题意: 给你一个有 n n n 个节点, m m m 条边的带权无向图,你需要求得一个生成树,使边权总和最小,且满足编号 ...
- 洛谷P2619 [国家集训队]Tree I 题解
洛谷P2619 [国家集训队]Tree I 题解 题目链接:P2619 [国家集训队]Tree I 题意: 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有 need\text{n ...
- 洛谷P1282 多米诺骨牌 题解
洛谷P1282 多米诺骨牌 题解 题目链接:P1282 多米诺骨牌 题意: 多米诺骨牌由上下 222 个方块组成,每个方块中有 1∼61\sim61∼6 个点.现有排成行的上方块中点数之和记为 S1S ...
- 洛谷P4084 [USACO17DEC]Barn Painting G 题解
洛谷P4084 [USACO17DEC]Barn Painting G 题解 题目链接:P4084 [USACO17DEC]Barn Painting G 题意:题意:给定一颗N个节点组成的树,3种颜 ...
- 洛谷P3237 [HNOI2014]米特运输 题解
洛谷P3237 [HNOI2014]米特运输 题解 题目链接:P3237 [HNOI2014]米特运输 题意: 这题面是真的长啊 qwq 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为 ...
最新文章
- 并行计算实战-双调排序
- 2.pandas数据清洗
- 构建之法读书笔记03
- git 查看某个文件的历史记录
- 照片处理软件(iSee图片专家) 3.930 中文免费版
- golang安装beego报错:go: cannot use path@version syntax in GOPATH mode
- HNOI2017 游记
- 自动化集成:Jenkins管理工具详解
- HDU 4622 求解区间字符串中的不同子串的个数
- 大萧条来临前的几大征兆
- 简易发号SQL,可用于生成指定前缀自增序列,如订单号,生成优惠券码等
- mongodb lbs java_Spring-MongoDB与LBS
- yyuc php,yyuc 开发手册.zip 框架 说明指南 Windows Develop 238万源代码下载- www.pudn.com...
- XTU OJ 1395
- 邮件中的FYI和PFA代表什么意思
- 云图说 | 勒索病毒防治解决方案
- 计算机自动执行的条件是,电脑中winsat.exe进程总会自动运行的解决方法
- Spring自定义参数解析器
- Kafka配置SASL_SSL认证传输加密
- 职场上被人针对要不要告诉领导
热门文章
- S32K148----SDK笔记----LwIP以太网测试
- 海归首选“北广” 薪酬期望值不要太高 元芳你怎么看?
- Android耗电量线下监控: Battery Historian
- convert命令FAT32转NTFS(不影响硬盘数据)
- Thymeleaf 标签学习 之 th:text 和 th:utext 的使用
- 漫画 | 为什么中国没有搞出浏览器引擎?
- 原生js实现元素拖拽onmousedown/onmousemove/onmouseup
- 怎么找计算机里面的视频教程,win7系统快速搜索查找电脑里的视频文件的办法...
- 惊!女装大佬项目登 GitHub Top 1!
- 汽车销售技巧培训讲师 司铭宇老师简介