题目链接:https://www.luogu.org/problemnew/show/P2863

求强连通分量大小>自己单个点的

  1. #include <stack>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <algorithm>
  6. using namespace std;
  7. const int maxn = 100000 + 10;
  8. struct edge{
  9. int next, to, from, len;
  10. }e[maxn<<2];
  11. int head[maxn], cnt;
  12. int n, m, color[maxn], tong[maxn], num, tim, ans;
  13. int dfn[maxn], low[maxn];
  14. bool vis[maxn];
  15. stack<int> s;
  16. void add(int u, int v)
  17. {
  18. e[++cnt].from = u;
  19. e[cnt].to = v;
  20. e[cnt].next = head[u];
  21. head[u] = cnt;
  22. }
  23. void tarjan(int x)
  24. {
  25. dfn[x] = low[x] = ++tim;
  26. s.push(x); vis[x] = 1;
  27. for(int i = head[x]; i != -1; i = e[i].next)
  28. {
  29. int v = e[i].to;
  30. if(!dfn[v])
  31. {
  32. tarjan(v);
  33. low[x] = min(low[x], low[v]);
  34. }
  35. else if(vis[v])
  36. {
  37. low[x] = min(low[x], low[v]);
  38. }
  39. }
  40. if(dfn[x] == low[x])
  41. {
  42. color[x] = ++num;
  43. vis[x] = 0;
  44. while(s.top() != x)
  45. {
  46. color[s.top()] = num;
  47. vis[s.top()] = 0;
  48. s.pop();
  49. }
  50. s.pop();
  51. }
  52. }
  53. int main()
  54. {
  55. memset(head, -1, sizeof(head));
  56. scanf("%d%d",&n,&m);
  57. for(int i = 1; i <= m; i++)
  58. {
  59. int u, v;
  60. scanf("%d%d",&u,&v);
  61. add(u,v);
  62. }
  63. for(int i = 1; i <= n; i++)
  64. if(!dfn[i]) tarjan(i);
  65. for(int i = 1; i <= n; i++)
  66. tong[color[i]]++;
  67. for(int i = 1; i <= n; i++)
  68. if(tong[i] > 1) ans++;
  69. printf("%d",ans);
  70. return 0;
  71. }

【luogu P2863 [USACO06JAN]牛的舞会The Cow Prom】 题解的更多相关文章

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

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

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

    题目传送门 这个题还是个缩点的板子题...... 答案就是size大于1的强连通分量的个数 加一个size来统计就好了 #include <iostream> #include <c ...

  3. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom 题解

    每日一题 day11 打卡 Analysis 好久没大Tarjan了,练习练习模板. 只要在Tarjan后扫一遍si数组看是否大于1就好了. #include<iostream> #inc ...

  4. bzoj1654 / P2863 [USACO06JAN]牛的舞会The Cow Prom

    P2863 [USACO06JAN]牛的舞会The Cow Prom 求点数$>1$的强连通分量数,裸的Tanjan模板. #include<iostream> #include&l ...

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

    洛谷——P2863 [USACO06JAN]牛的舞会The Cow Prom 题目描述 The N (2 <= N <= 10,000) cows are so excited: it's ...

  6. 洛谷——P2863 [USACO06JAN]牛的舞会The Cow Prom

    https://www.luogu.org/problem/show?pid=2863#sub 题目描述 The N (2 <= N <= 10,000) cows are so exci ...

  7. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom

    传送门 题目大意:形成一个环的牛可以跳舞,几个环连在一起是个小组,求几个小组. 题解:tarjian缩点后,求缩的点包含的原来的点数大于1的个数. 代码: #include<iostream&g ...

  8. 洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom

    代码是粘的,庆幸我还能看懂. #include<iostream> #include<cstdio> #include<cmath> #include<alg ...

  9. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom(Tarjan)

    一道tarjan的模板水题 在这里还是着重解释一下tarjan的代码 #include<iostream> #include<cstdio> #include<algor ...

随机推荐

  1. 队列同步器AbstractQueuedSynchronizer

    AQS是用来构建锁或者其它同步组件的基础框架,它使用一个int变量来表示同步状态,通过内置的FIFO队列来完成获取线程的排队工作,concurrent包的作者Doug Lea期望它能称为实现大部分同步 ...

  2. 6个Unity 开源项目分享!

    http://gad.qq.com/article/detail/38279?sessionUserType=BFT.PARAMS.249034.TASKID&ADUIN=991655778& ...

  3. Linux VFS机制简析(一)

    Linux VFS机制简析(一) 本文主要基于Linux内核文档,简单分析Linux VFS机制,以期对编写新的内核文件系统(通常是给分布式文件系统编写内核客户端)的场景有所帮助. 个人渊源 切入正文 ...

  4. (三)PHP网页架站

    目前,Windows下已经有集成的PHP网页架站工具,例如:AppServ.WampServer.这些软件将Apache.PHP.MySQL.phpMyAdmin集成到一起,极大地方便了开发者架站.但 ...

  5. My eclipse jdk unbound的解决

    project --> properties --> java build path --> 双击出错的jdk --> alternate jre --> install ...

  6. java几种常见的排序算法总结

    /*************几种常见的排序算法总结***************************/ package paixu; public class PaiXu { final int  ...

  7. Bash 终端快捷键

    在终端下输大量的命令,有些快捷键还是挺有帮助的. 跳跃 跳到最后 ctrl + e (end) 跳到最前 ctrl + a (abcde....) 向后跳一个单词 alt + 右方向键 向前跳一个单词 ...

  8. 概述File i/o

    1.File对象既可表示文件,也可表示目录(文件夹). 2. 创建一个File对象 File file = new File (String pathName[文件路径名]); 3.在Windows操 ...

  9. r.js压缩打包

    AMD模块化开发中的代码压缩打包工具——r.js 环境搭建基于nodejs:用于AMD模块化开发中的项目文件压缩打包,不是AMD模式也是可以的 javascript部分 压缩javascript项目开 ...

  10. SpringCloud的学习记录(8)

    这一章节讲zipkin-server. 在我们生成的Demo项目上右键点击New->Module->spring Initializr, 然后next, 填写Group和Artifact等 ...