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相关推荐

  1. 【强连通】P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G

    P2341 [USACO03FALL / HAOI2006] 受欢迎的牛 G 判断强连通的关键是dfn与low. dfn记录的是节点dfs搜索时的dfs序,而low则是记录表示这个点以及其子孙节点连的 ...

  2. 【tarjan】 P2341 [USACO03FALL][HAOI2006]受欢迎的牛 G

    如果几头奶牛互相喜欢,那么我们就可把他们视为一个强连通分量,然后缩点. 此时出度为0的点为最受明星牛,但如果出度为0的点超过了一个那么就无法做到有奶牛被所有人喜欢 代码 #include<bit ...

  3. 洛谷P2341 [HAOI2006]受欢迎的牛 (Tarjan,SCC缩点)

    P2341 [HAOI2006]受欢迎的牛|[模板]强连通分量 https://www.luogu.org/problem/P2341 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就 ...

  4. 洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows

    P2341 [HAOI2006]受欢迎的牛/POJ2186:Popular Cows 题目背景 本题测试数据已修复. 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所 ...

  5. BZOJ 1051: [HAOI2006]受欢迎的牛

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 7120  Solved: 3779 [Submit][S ...

  6. bzoj1051: [HAOI2006]受欢迎的牛

    tarjan缩点.判断是否只有一个没有出边.是则输出该点点数 #include<cstdio> #include<cstring> #include<iostream&g ...

  7. BZOJ 1051: [HAOI2006]受欢迎的牛【Trajan】

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MB Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛 ...

  8. BZOJ1051|HAOI2006受欢迎的牛|强连通分量

    Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...

  9. BZOJ 1051: [HAOI2006]受欢迎的牛 强连通分量,Tarjan缩点

    Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...

最新文章

  1. ASP.NET上传文件管理控件
  2. 【NLP】Transformer的中年危机?
  3. Qt Creator从Blender导出3D资产
  4. 数据安全审查综合解读|如何从被动合规到主动战略风控?
  5. 遇到这样的程序员,你怎么办?
  6. 使用Logstash,JDBC将数据聚合并索引到Elasticsearch中
  7. c语言格式错误pe,C语言PE文件filebuffer到imagebuffer的错误
  8. Java笔记-非对称加密RSA的使用
  9. linux mysql怎么建数据库用户,Linux MySQL新建用户
  10. C语言作业 – 数组排序算法可视化
  11. 浏览其中的【navigator】对象的【userAgent】判断浏览器。
  12. python自学-Python 自学(己用)
  13. 贴片铝电容识别及型号_贴片铝电解电容封装尺寸定义.pdf
  14. CCReportAdv(高级WinCC报表控件)
  15. 宝藏又小众的Digital Tutors视频教程素材网站分享
  16. 快手的未来,没有宿华
  17. 使用netstat命令验证DDOS入侵
  18. 重新启动oracle 服务,在linux重新启动下如何设置oracle服务自动开启
  19. Mac平台配置OpenGL(glut,glew)
  20. Beyond Compare4试用过期解决方法

热门文章

  1. KVM虚拟机添加虚拟硬盘
  2. 催收系统 源码 php,header.php
  3. 【Python数据处理】用pandas将dataframe写入excel中
  4. 【算法学习】随机化算法 随机数生成器和mt19937
  5. 万字长文告诉你Go 1.19中值得关注的几个变化
  6. 智慧校园人脸识别系统源码
  7. 2022压轴神作《爱死机3》,助推国漫「第二次崛起」​?
  8. QT 编译报错:error: no macro name given in #define directive
  9. 计算机应用基础一级试题,计算机应用基础(计算机一级)试题
  10. 股票期权平台交易如何防止被骗?