每日一题 day11 打卡

Analysis

好久没大Tarjan了,练习练习模板。

只要在Tarjan后扫一遍si数组看是否大于1就好了。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #define maxn 10000+10
  6. #define maxm 50000+10
  7. using namespace std;
  8. inline int read()
  9. {
  10. int x=;
  11. bool f=;
  12. char c=getchar();
  13. for(; !isdigit(c); c=getchar()) if(c=='-') f=;
  14. for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
  15. if(f) return x;
  16. return -x;
  17. }
  18. inline void write(int x)
  19. {
  20. if(x<){putchar('-');x=-x;}
  21. if(x>)write(x/);
  22. putchar(x%+'');
  23. }
  24. int n,m,cnt,num,top,col,ans;
  25. int head[maxm],dfn[maxn],low[maxn],co[maxn],st[maxn],si[maxn];
  26. struct node{int to,next;}edge[maxm];
  27. inline void add(int x,int y)
  28. {
  29. edge[++cnt].to=y;
  30. edge[cnt].next=head[x];
  31. head[x]=cnt;
  32. }
  33. inline void Tarjan(int u)
  34. {
  35. dfn[u]=low[u]=++num;
  36. st[++top]=u;
  37. for(int i=head[u];i;i=edge[i].next)
  38. {
  39. int v=edge[i].to;
  40. if(!dfn[v])
  41. {
  42. Tarjan(v);
  43. low[u]=min(low[u],low[v]);
  44. }
  45. else if(!co[v])
  46. low[u]=min(low[u],dfn[v]);
  47. }
  48. if(low[u]==dfn[u])
  49. {
  50. co[u]=++col;
  51. while(st[top]!=u)
  52. {
  53. si[col]++;
  54. co[st[top]]++;
  55. --top;
  56. }
  57. si[col]++;
  58. --top;
  59. }
  60. }
  61. int main()
  62. {
  63. n=read();m=read();
  64. for(int i=;i<=m;i++)
  65. {
  66. int x=read(),y=read();
  67. add(x,y);
  68. }
  69. for(int i=;i<=n;i++)
  70. if(!dfn[i])
  71. Tarjan(i);
  72. for(int i=;i<=col;i++)
  73. if(si[i]>) ans++;
  74. write(ans);
  75. return ;
  76. }

请各位大佬斧正(反正我不认识斧正是什么意思)

洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom 题解的更多相关文章

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

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

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

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

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

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

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

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

  5. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom-强连通分量(Tarjan)

    本来分好组之后,就确定好了每个人要学什么,我去学数据结构啊. 因为前一段时间遇到一道题是用Lca写的,不会,就去学. 然后发现Lca分为在线算法和离线算法,在线算法有含RMQ的ST算法,前面的博客也写 ...

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

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

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

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

  8. 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 ...

  9. 【luogu P2863 [USACO06JAN]牛的舞会The Cow Prom】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2863 求强连通分量大小>自己单个点的 #include <stack> #include ...

随机推荐

  1. 随记sqlserver学习笔记(一)

    create database testuse test --部门表create table department( dept_id int not null identity primary key ...

  2. Python中创建数值列表——参考Python编程从入门到实践

    1. 函数range( )的使用 range( )函数可以生成一系列的数字: for value in range(1, 5): print(value) Note:运行结果是打印数字1到4,即该函数 ...

  3. Android studio 3.1.3真机调试报错,no target device found

    Android studio 3.1.2 的 Android monitor 改为 Android profiler,直接点这个就可以真机调试,在手机安装相应app 如果不行,报错,"no ...

  4. mininet安装配置

    mininet安装配置 安装mininet mininet使用 在VM中运行mininet 安装VMware,在VMware中打开下载好的mininet虚拟机映像 启动虚拟机,虚拟机的初始账号密码均为 ...

  5. (转)高效线程池之无锁化实现(Linux C)

    本文链接:https://blog.csdn.net/xhjcehust/article/details/45844901 笔者之前照着通用写法练手写过一个小的线程池版本,最近几天复习了一下,发现大多 ...

  6. maven配置阿里镜像

    在conf\settings.xml 在<mirrors>里面添加   <mirror>    <id>nexus-aliyun</id>    < ...

  7. 第二次用map23333

    度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的每一个字符串,也都是这个人的名字.例如, ...

  8. CentOS7.9防火墙命令

    CentOS7防火墙命令有变化: CentOS7:   systemctl status firewalld.service     查看防火墙状态 systemctl stop firewalld. ...

  9. tslint 忽略格式检查

    // tslint:disable——忽略该行以下所有代码出现的错误提示,可以在文件首行添加达到忽略整个文件的格式提示 // tslint:enable——当前ts文件重新启用tslint// tsl ...

  10. win10+pyspark+pycharm+anaconda单机环境搭建

    一.工具准备 1. jdk1.8 2. scala 3. anaconda3 4. spark-2.3.1-bin-hadoop2.7 5. hadoop-2.8.3 6. winutils 7. p ...