稍微学习一下强连通分量。

https://www.cnblogs.com/stxy-ferryman/p/7779347.html

我觉得他讲得很好。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 #include <vector>
 6 #include <stack>
 7 using namespace std;
 8 const int MAXN = 1e5 + 20;
 9
10 int N, M;
11
12 namespace SCC
13 {
14     vector<int> g[MAXN];
15     stack<int> sta;
16     bool ins[MAXN];
17     int idx[MAXN], dfn[MAXN], low[MAXN];
18     vector<int> scc[MAXN]; int cnt = 0;
19
20     void tarjan(int cur)
21     {
22         static int num = 0;
23         dfn[cur] = low[cur] = ++num;
24         sta.push(cur), ins[cur] = true;
25         for(int i = 0; i < (int) g[cur].size(); i++){
26             int v = g[cur][i];
27             if(!dfn[v]) {
28                 tarjan(v);
29                 low[cur] = min(low[cur], low[v]);
30             }
31             else if(ins[v]) low[cur] = min(low[cur], dfn[v]);
32         }
33         if(dfn[cur] == low[cur]){
34             ++cnt; int tmp;
35             do{
36                 tmp = sta.top(); sta.pop(); ins[tmp] = false;
37                 idx[tmp] = cnt, scc[cnt].push_back(tmp);
38             }while(tmp != cur);
39         }
40     }
41 }
42
43 int main()
44 {
45     cin>>N>>M;
46     for(int i = 1, u, v; i <= M; i++){
47         scanf("%d%d", &u, &v);
48         SCC::g[u].push_back(v);
49     }
50
51     for(int i = 1; i <= N; i++)
52         if(!SCC::dfn[i]) SCC::tarjan(i);
53     int ans = 0;
54     for(int i = 1; i <= SCC::cnt; i++)
55         if(SCC::scc[i].size() > 1) ++ans;
56     cout<<ans<<endl;
57     return 0;
58 }

转载于:https://www.cnblogs.com/wsmrxc/p/9278548.html

洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom相关推荐

  1. P2863 [USACO06JAN]牛的舞会The Cow Prom

    题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...

  2. 【题解】[USACO06JAN]牛的舞会The Cow Prom(tarjan)

    题目描述 约翰的N (2 <= N <= 10,000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别 上鲜花,她们要表演圆舞. 只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一 ...

  3. 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game

    洛谷 2953  [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...

  4. 【洛谷 2863】牛的舞会

    题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...

  5. 【USACO06JAN】牛的舞会The Cow Prom

    题目描述 约翰的N (2 <= N <= 10,000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别 上鲜花,她们要表演圆舞. 只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一 ...

  6. 洛谷 P1352 没有上司的舞会

    洛谷 P1352 没有上司的舞会 Description 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会, ...

  7. 题解 洛谷 P3069 [USACO13JAN]牛的阵容Cow Lineup

    洛谷P3069[USACO13JAN]牛的阵容CowLineup\color{#00F}{洛谷\ P3069\ [USACO13JAN]牛的阵容Cow Lineup}洛谷 P3069 [USACO13 ...

  8. 洛谷·bzoj·伟大的奶牛聚集Great Cow Gather

    初见安~~这里是传送门:洛谷P2986 & bzoj P1827 题目描述 Bessie is planning the annual Great Cow Gathering for cows ...

  9. 洛谷P2862 [USACO06JAN]把牛Corral the Cows

    P2862 [USACO06JAN]把牛Corral the Cows 题目描述 Farmer John wishes to build a corral for his cows. Being fi ...

最新文章

  1. 这是我见过的GAN的最佳用法!
  2. Bitmap,byte[],Drawable相互转化
  3. 北京超前布局通用人工智能 我国首个超大规模智能模型系统发布
  4. 14.4 线程通讯-生产者与消费者
  5. android aar 修改,Android aar包修改代码后重新打包
  6. 【已完结!】Java基础--学习笔记(零起点打开java世界的大门)--博客汇总表【附:视频、工程源码、资料、详细笔记】
  7. Css标题中图片居中,图片居中:任意图片在div里的上下垂直都居中!
  8. php验证码--图片
  9. 使用ASP.NET Core 3.x 构建 RESTful API - 3.4 内容协商
  10. ES6学习(一)— Babel转码器的使用和配置
  11. TTS之训练vocoder
  12. Spark中repartition和coalesce的区别与使用场景解析
  13. python—gc.collect()清楚内存
  14. 天梯赛L2-10:排座位
  15. python orange3_Anaconda中安装Orange3脚本-完整版
  16. springboot 2.5.3 ActiveMQ踩坑笔记
  17. svn: E155037: Previous operation has not finished; run 'cleanup' if it was i
  18. 开源项目智慧教室:考试作弊系统、动态点名等功能
  19. JAVA入门遇到的问题01 超大数字大小比较
  20. 程序员晚上跟女朋友聊什么?------(写了个五子棋游戏给她,她玩了整晚也没赢一局)

热门文章

  1. async和await结合读取文件
  2. java设计模式之UML①
  3. QT4使用HDF5 类型错误
  4. 图像连通域检测的2路算法Code
  5. matplotlib简介-高质量图形输出
  6. Java高并发秒杀Api-业务分析与DAO层构建1
  7. 21.Azure备份Azure上的虚拟机(下)
  8. FastClick使用之trigger触发click失效
  9. Ant远程部署到Tomcat
  10. Android 开发中常用小技巧