1051. [HAOI2006]受欢迎的牛【强连通分量】
Description
Input
Output
一个数,即有多少头牛被所有的牛认为是受欢迎的。
Sample Input
1 2
2 1
2 3
Sample Output
HINT
100%的数据N<=10000,M<=50000
求有多少个点,使得所有其他点都有一条到它的路径。
嘛……很好的一个tarjan模板题……问题是垃圾LXXGU的数据太恶心
竟然有多个图的数据(强行给自己的菜开脱)
这个题就是将图缩点缩成一个有向无环图
若只有一个点出度为0那么这个点必然被所有牛喜欢
反证:要是有多个点出度为0,那么这些出度为0的点必然不会喜欢其他出度为0的点
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define MAXN (100000+5)
#define MAXM (100000+5)
using namespace std;
int Dfn[MAXN],Low[MAXN],Outd[MAXN];
int Dfs_num,Col_num,Color[MAXN],Cnt[MAXN];
int u[MAXM],v[MAXM];
int stack[MAXN],top;
bool Vis[MAXN];
int head[MAXN],num_edge;
struct node
{
int next;
int to;
} edge[MAXM*]; void add(int u,int v)
{
edge[++num_edge].to=v;
edge[num_edge].next=head[u];
head[u]=num_edge;
} void Tarjan(int x)
{
Dfn[x]=++Dfs_num;
Low[x]=Dfs_num;
Vis[x]=true;
stack[++top]=x;
for (int i=head[x]; i!=; i=edge[i].next)
if (!Dfn[edge[i].to])
{
Tarjan(edge[i].to);
Low[x]=min(Low[x],Low[edge[i].to]);
}
else if (Vis[edge[i].to])
Low[x]=min(Low[x],Dfn[edge[i].to]);
if (Dfn[x]==Low[x])
{
Vis[x]=false;
Color[x]=++Col_num;
Cnt[Col_num]++;
while (stack[top]!=x)
{
Cnt[Col_num]++;
Color[stack[top]]=Col_num;
Vis[stack[top--]]=false;
}
--top;
}
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for (int i=; i<=m; ++i)
{
scanf("%d%d",&u[i],&v[i]);
add(u[i],v[i]);
}
for (int i=; i<=n; ++i)
if (!Dfn[i])
Tarjan(i);
for (int i=; i<=m; ++i)
if (Color[u[i]]!=Color[v[i]])
++Outd[Color[u[i]]]; int Ans=;
for (int i=; i<=Col_num; ++i)
if (Outd[i]==)
if (Ans==)
Ans=Cnt[i];
else
{
printf("");
return ;
}
printf("%d",Ans);
}
1051. [HAOI2006]受欢迎的牛【强连通分量】的更多相关文章
- BZOJ 1051: [HAOI2006]受欢迎的牛 强连通缩点
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1051 题解: 强连通缩点得到DAG图,将图转置一下,对入度为零的点跑dfs看看能不能访问 ...
- [bzoj1051][HAOI2006]受欢迎的牛——强连通分量
题目大意: 给定一个有向图,求能够被其他所有点访问到的点的个数. 题解: 首先,这个题我在洛谷上AC了,但是bzoj上WA,不知道为什么. 说一下解法. 首先,我们进行scc分解,可以知道, 如果一个 ...
- BZOJ 1051: [HAOI2006]受欢迎的牛( tarjan )
tarjan缩点后, 有且仅有一个出度为0的强连通分量即answer, 否则无解 ----------------------------------------------------------- ...
- BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8172 Solved: 4470[Submit][Sta ...
- 1051: [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2276 Solved: 1190[Submit][Sta ...
- 【BZOJ 1051】 1051: [HAOI2006]受欢迎的牛 (SCC)
1051: [HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如 ...
- BZOJ 1051: [HAOI2006]受欢迎的牛 缩点
1051: [HAOI2006]受欢迎的牛 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- bzoj 1051: [HAOI2006]受欢迎的牛 tarjan缩点
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2092 Solved: 1096[Submit][Sta ...
- BZOJ(3) 1051: [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 7365 Solved: 3937[Submit][Sta ...
- 【BZOJ】1051: [HAOI2006]受欢迎的牛
[HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢 ...
随机推荐
- 350-两个阵列的交叉点II
给定两个数组,编写一个函数来计算它们的交集. 例1: 输入: nums1 = [1,2,2,1],nums2 = [2,2] 输出:[2,2] 例2: 输入: nums1 = [4,9,5],,nu ...
- CSS starts
I have not written any articles here since I graduated from my university. Now I begin to write down ...
- 湘潭校赛 Hard Wuxing
Hard Wuxing Accepted : 13 Submit : 166 Time Limit : 1000 MS Memory Limit : 65536 KB 题目描述 “五行”是中国 ...
- CodeForces760B
B. Frodo and pillows time limit per test:1 second memory limit per test:256 megabytes input:standard ...
- c#winform中如何修改ListView控件每个单元格的颜色
ListView在View属性为Details的时候它呈现的方式和DataGirdView差不多,它的每一行都是一个ListViewItem,然而每个ListViewItem都有一个BackColor ...
- AGC009:Eternal Average
传送门 好神啊 直接考虑一棵 \(n+m\) 个叶子的 \(k\) 叉树,根结点权值为 \(\sum_{i\in m}(\frac{1}{k})^{deep_i}\) 对于一个 \(deep\) 的序 ...
- 在windows上搭建redis集群(redis-cluster)
一 所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址 ...
- thinkphp3.2 success方法注意
success方法的url一定要用U()方法来生成, $this->success('修改成功',U('showlist'),3);
- 转:PHP导出excel文件的几种方式
PHP导出excel文件的几种方式 文章来源:http://www.cnblogs.com/fredshare/archive/2012/10/29/2744243.html 先说说动态生成的内容当作 ...
- Selectivizr-让IE6~8支持CSS3伪类和属性选择器
一.下载和demo 下载: 您可以狠狠地点击这里:selectivizr-1.0.0.zip(右键-[目标|链接另存为] 9.24K) demo: 您可以狠狠地点击这里:Selectivizr部分属性 ...