P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G
Day3 Tarjan
代码如下(示例):
#include <bits/stdc++.h>
using namespace std;
const int MaxN=1e4+5;//最大点数
const int MaxM=5e4+5;//最大边数
int to[MaxM],nex[MaxM],fir[MaxN];
int col,num,dfn[MaxN],low[MaxN],de[MaxN],si[MaxN];
int tot=0,co[MaxN],n,m;
int top,st[MaxN];inline void Ins(int x,int y){//链式前向星 to[++tot]=y;nex[tot]=fir[x];fir[x]=tot;
} void Tarjan(int u){//缩点dfn[u]=low[u]=++num;st[++top]=u;//模拟栈for(int i=fir[u];i;i=nex[i]){int v=to[i];if(!dfn[v]){Tarjan(v);//先将子树的状态完成 low[u]=min(low[u],low[v]); }else if(!co[v])//还在栈中low[u]=min(low[u],low[v]); }if(low[u]==dfn[u]){co[u]=++col;++si[col];while(st[top]!=u){++si[col];co[st[top]]=col;--top;}--top;}
}int main(){cin>>n>>m;for(int i=1,x,y;i<=m;i++){cin>>x>>y;Ins(y,x);//反向建边 }for(int i=1;i<=n;i++){if(!dfn[i])Tarjan(i);//缩点 }for(int i=1;i<=n;i++)for(int j=fir[i];j;j=nex[j])if(co[i]!=co[to[j]])de[co[to[j]]]++;//入度增加int ans =0,u=0;for(int i=1;i<=col;i++)if(!de[i])ans=si[i],u++;//统计if(u==1)cout<<ans<<endl;elsecout<<0<<endl;return 0;}
P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G相关推荐
- 【强连通】P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G
P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G 判断强连通的关键是dfn与low. dfn记录的是节点dfs搜索时的dfs序,而low则是记录表示这个点以及其子孙节点连的 ...
- 【tarjan】 P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G
如果几头奶牛互相喜欢,那么我们就可把他们视为一个强连通分量,然后缩点. 此时出度为0的点为最受明星牛,但如果出度为0的点超过了一个那么就无法做到有奶牛被所有人喜欢 代码 #include<bit ...
- 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)
P2341 [HAOI2006]受欢迎的牛|[模板]强连通分量 https://www.luogu.org/problem/P2341 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就 ...
- 洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows
P2341 [HAOI2006]受欢迎的牛/POJ2186:Popular Cows 题目背景 本题测试数据已修复. 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所 ...
- BZOJ 1051: [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 7120 Solved: 3779 [Submit][S ...
- bzoj1051: [HAOI2006]受欢迎的牛
tarjan缩点.判断是否只有一个没有出边.是则输出该点点数 #include<cstdio> #include<cstring> #include<iostream&g ...
- BZOJ 1051: [HAOI2006]受欢迎的牛【Trajan】
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MB Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛 ...
- BZOJ1051|HAOI2006受欢迎的牛|强连通分量
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...
- BZOJ 1051: [HAOI2006]受欢迎的牛 强连通分量,Tarjan缩点
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...
最新文章
- ASP.NET上传文件管理控件
- 【NLP】Transformer的中年危机?
- Qt Creator从Blender导出3D资产
- 数据安全审查综合解读|如何从被动合规到主动战略风控?
- 遇到这样的程序员,你怎么办?
- 使用Logstash,JDBC将数据聚合并索引到Elasticsearch中
- c语言格式错误pe,C语言PE文件filebuffer到imagebuffer的错误
- Java笔记-非对称加密RSA的使用
- linux mysql怎么建数据库用户,Linux MySQL新建用户
- C语言作业 – 数组排序算法可视化
- 浏览其中的【navigator】对象的【userAgent】判断浏览器。
- python自学-Python 自学(己用)
- 贴片铝电容识别及型号_贴片铝电解电容封装尺寸定义.pdf
- CCReportAdv(高级WinCC报表控件)
- 宝藏又小众的Digital Tutors视频教程素材网站分享
- 快手的未来,没有宿华
- 使用netstat命令验证DDOS入侵
- 重新启动oracle 服务,在linux重新启动下如何设置oracle服务自动开启
- Mac平台配置OpenGL(glut,glew)
- Beyond Compare4试用过期解决方法
热门文章
- KVM虚拟机添加虚拟硬盘
- 催收系统 源码 php,header.php
- 【Python数据处理】用pandas将dataframe写入excel中
- 【算法学习】随机化算法 随机数生成器和mt19937
- 万字长文告诉你Go 1.19中值得关注的几个变化
- 智慧校园人脸识别系统源码
- 2022压轴神作《爱死机3》,助推国漫「第二次崛起」​?
- QT 编译报错:error: no macro name given in #define directive
- 计算机应用基础一级试题,计算机应用基础(计算机一级)试题
- 股票期权平台交易如何防止被骗?