tarjan算法的模板题,一开始80分,是因为我忘了从每个点都要开始遍历防止多个连通子图的出现

#include<bits/stdc++.h>
using namespace std;
vector<int> edge[10010];
stack<int>s;
bool vis[10010];
int num,sum;
int dfn[10010];
int low[10010];
void tarjan(int u)
{int v;dfn[u]=low[u]=num++;vis[u]=true,s.push(u);for(int e=0;e<edge[u].size();e++){v=edge[u][e];if(!dfn[v]){tarjan(v);low[u]=min(low[u],low[v]);}else if(vis[v])low[u]=min(low[u],dfn[v]);}if(dfn[u]==low[u]){int cnt=0;do{v=s.top();vis[v]=false;s.pop();cnt++;}while(v!=u);sum+=cnt*(cnt-1)/2;}}
int main()
{int n,m;int u,v;scanf("%d %d",&n,&m);for(int i=0;i<m;i++){scanf("%d %d",&u,&v);edge[u].push_back(v);}num=1;for(int i=1;i<=n;i++)tarjan(i);printf("%d\n",sum);}

ccf 高速公路(顺便当tarjan模板)相关推荐

  1. 求无向图的连通分量或有向图的强连通分量—tarjan()ccf高速公路

    概念定义: 在图论中,连通图基于连通的概念. 1. 连通(无向图): 若顶点Vi能通过路径到达Vj,那么称为Vi和Vj是连通的 对无向图:若从顶点Vi到顶点Vj有路径相连(当然从j到i也一定有路径), ...

  2. codeforces 427C tarjan模板题

    题意: 给你n个点每个点修建警察局的cost 对于这张图来说,与警察局在同一强联通分量里的每个点都可以被这个警察局照看  问你最小cost以及当前cost的方案数 思路: tarjan模板题~~~ ( ...

  3. 洛谷1726 上白泽慧音 tarjan模板

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...

  4. 图论 SCC(CCF高速公路)

    简介 首先需要复习一下图论的一系列知识,理解有向图的强连通分量的定义,求解有向图的强连通分量算法有很多,例如Kosaraju,Gabow和Tarjan算法,其中Gabow和Tarjan算法时间复杂度要 ...

  5. CodeForces 427C Checkposts (强连通分量Tarjan模板题)

    题目链接:点击打开链接 题意:n个点m条路,要设置最少的站点,只需要在每个强连通分量中选一个站点就好,要使费用最少只需要在每个强连通分量中 取权值最小的即可.为了写这道题,看了一下午的tarjan算法 ...

  6. Tarjan模板 人工栈版Tarjan

    引入 tarjan算法有两个最重要东西 dfn[x]表示x的dfs序 low[x]表示x以及x能连到的点中(包括间接连到的)最小的dfn 还有两个标记 一个表示是否访问过 一个为是否在当前的栈中 求解 ...

  7. tarjan模板---求解有向图强连通分量

    tarjan算法,一个关于 图的联通性的神奇算法.基于DFS(迪法师)算法,深度优先搜索一张有向图.!注意!是有向图.根据树,堆栈,打标记等种种神(che)奇(dan)方法来完成剖析一个图的工作.而图 ...

  8. 浅谈Tarjan缩点(分析+模板)

    昨天一看发现我的博客数量到100篇了,撒花✿✿ヽ(°▽°)ノ✿ 根据标题我们也知道,想要在接下来的十分钟不浪费生命 读者需要先行学习Tarjan强联通分量 如果不会的话可以点击这里:https://w ...

  9. Tarjan算法 —— 强连通双连通缩点 模板

    TP 强连通缩点模板 双连通缩点模板 边双连通 点双连通 有向图 我们知道在一张 有向无环 图(也叫 DAG)中,肯定存在拓扑序.拓扑序的特殊顺序性质,能够允许我们在 O(n+m)O(n + m)O( ...

最新文章

  1. 大数据之Python入门语法基础
  2. 内存缓存之memcache的使用
  3. 快点啊,大工程禁用Visual Assist,禁用符号加载
  4. Yongkil Kwon:EOS具有当今世界上最多中心化的协议 | 独家专访
  5. Android-NDK:native-media
  6. abap al设置单元格可编辑 oo_润乾报表美化设置 -- 样式
  7. gradle groovy_适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock
  8. 不可思议的素数(下)
  9. 无法在C语言软件里敲字,网页上不能输入文字怎么办
  10. 【基础知识】.Net基础加强 第四天
  11. 软件工程-图书馆管理系统
  12. 数学建模PPT(四)
  13. PostgreSQL usermanual翻译暂停20200420
  14. 电影中的计算机 过去与未来
  15. 谷歌宣布退出中国 google.cn已经关闭
  16. 微信企业转账到银行卡
  17. 子平格局——戊癸化火格
  18. LQ0187 猜年龄【填空题】
  19. iOS NSUserDefaults删除全部记录或删除指定记录
  20. zdm各命令的功能和作用_ZDM命令 注释

热门文章

  1. git shanchu stash_git stash用法
  2. Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值
  3. 【UML建模】机房中的UML图
  4. Apriori算法通俗详解_fpgrowth2_关联分析评估
  5. 回归算法 - 线性回归求解 θ(最大似然估计求解)
  6. linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效
  7. Pytorch实现MNIST(附SGD、Adam、AdaBound不同优化器下的训练比较) adabound实现
  8. TVM,Relay,Pass
  9. 自动调度GPU的卷积层
  10. 基于TensorRT的BERT实时自然语言理解(下)