targan算法。

 1 # include <cstdio>
 2 # include <cstring>
 3
 4 # define N (1000 + 5)
 5
 6 int n, son, tmpdfn;
 7 int low[N], dfn[N], subnets[N];
 8 char g[N][N];
 9
10 int Min(int x, int y)
11 {
12     return x<y ? x:y;
13 }
14
15 void tarjan(int u, int r)
16 {
17     dfn[u] = low[u] = ++tmpdfn;
18     for (int v = 1; v <= n; ++v) if (g[u][v])
19     {
20         if (!dfn[v])
21         {
22             //dfn[v] = low[v] = ++tmpdfn;  // 时间戳打在这里就忽略了节点r,原图可能是不联通的(这道题是联通的)
23             tarjan(v, r);
24             low[u] = Min(low[u], low[v]);
25             if (low[v] >= dfn[u])
26             {
27                 if (u != r) ++subnets[u];
28                 else ++son;
29             }
30         }
31         else
32             low[u] = Min(low[u], dfn[v]);
33     }
34 }
35
36 void init(void)
37 {
38     tmpdfn = 0;
39     memset(low+1, 0, sizeof(int)*n);
40     memset(dfn+1, 0, sizeof(int)*n);
41     memset(subnets+1, 0, sizeof(int)*n);
42 }
43
44 void solve(void)
45 {
46     bool find = false;
47     for (int i = 1; i <= n; ++i) if (!dfn[i])
48     {
49         son = 0;
50         tarjan(i, i);
51         if (son > 1) subnets[i] = son - 1;
52     }
53     for (int i = 1; i <= n; ++i)
54     {
55         if (subnets[i])
56         {
57             find = true;
58             printf("\n  SPF node %d leaves %d subnets", i, subnets[i]+1);
59         }
60     }
61     if (find == false)
62         printf("\n  No SPF nodes");
63 }
64
65 int read_graph(void)
66 {
67     n = 0;
68     memset(g, 0, sizeof(g));
69     int x, y;
70     scanf("%d", &x);
71     if (x == 0) return 0;
72     do
73     {
74         scanf("%d", &y);
75         g[x][y] = g[y][x] = 1;
76         if (x > n) n = x;
77         if (y > n) n = y;
78     }while (scanf("%d", &x), x);
79     return 1;
80 }
81
82 int main()
83 {
84     int icase = 0;
85     while (read_graph())
86     {
87         if (icase != 0) printf("\n\n");
88         printf("Network #%d", ++icase);
89         init();
90         solve();
91     }
92 }

注意n=1的情况。

转载于:https://www.cnblogs.com/JMDWQ/archive/2012/08/07/2626705.html

[无向图割点] PKU 1523 SPF相关推荐

  1. poj 1523 SPF (无向图 的 割点)

    http://poj.org/problem?id=1523 题意:  求  无向图的 个点,以及 将个点 去掉后  图 被分成 几个联通块: 题解:  tarjan   .   1 #include ...

  2. POJ 1523 SPF 割点与桥的推断算法-Tarjan

    题目链接: POJ1523 题意: 问一个连通的网络中有多少个关节点,这些关节点分别能把网络分成几部分 题解: Tarjan 算法模板题 顺序遍历整个图,能够得到一棵生成树: 树边:可理解为在DFS过 ...

  3. POJ 1523 SPF (割点 点双连通分量)

    题意:求出割点以及除去割点后的连通分量的数量(附带求出了点双连通分量(块)) [求割点]对图深度优先搜索,定义DFS(u)为u在搜索树(以下简称为树)中被遍历到的次序号.定义Low(u)为u或u的子树 ...

  4. SPF Tarjan算法求无向图割点(关节点)入门题

    SPF 题目抽象,给出一个连通图的一些边,求关节点.以及每个关节点分出的连通分量的个数 邻接矩阵只要16ms,而邻接表却要32ms,  花费了大量的时间在加边上. //   time  16ms 1 ...

  5. poj 2942 圆桌骑士 无向图割点 奇圈 交叉染色

    连通类经典题 题意及分析参考: 1.建反向图 2.tarjan 算法求割点3.二部图与奇圈 4.交叉染色 http://blog.csdn.net/lyy289065406/article/detai ...

  6. POJ 1523 SPF

    大意:求割顶的数量以及删除割顶之后子图的数量. 思路:Tarjan算法求割顶,同POJ 1144 NetWork. CODE1: #include<cstdio> #include< ...

  7. BZOJ_P1123 [POI2008]BLO(无向图割点)

    BZOJ传送门 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 810 Solved: 344 [Submit][Status][Discuss] De ...

  8. DFS应用——找出无向图的割点

    [0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "DFS应用于找割点" 的idea 并用源代码加以实现: 0.2) 必须要事先 做个s ...

  9. 第1节 连通性强连通、割点和桥(一)

    文章目录 无向图割点.桥.双连通分量 Tarjan算法求割点和桥(割边) 代码: 边双连通分量 和 点双连通分量 代码 边双连通分量 和 点双连通分量 的缩点 有向图的弱连通与强连通 强连通分量 Ko ...

最新文章

  1. ASP.NET Core的配置(5):配置的同步[设计篇]
  2. hdu 4417 Super Mario(可持久化线段树)
  3. Kali Linux安全渗透教程(内部资料)
  4. linux mysql5.7.11安装_centos 7 安装mysql 5.7.11
  5. 斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning...
  6. bash的简单for循环
  7. 代码整洁之道(Clean Code)- 读书笔记
  8. LeetCode 2157. 字符串分组(状态压缩+位运算+图的遍历)
  9. Oracle plsqlI 练习 传值
  10. 因代码不规范,码农枪击了4名同事!
  11. cnn 示意图_Two-Stream CNN(双流CNN)介绍(NIPS2014)
  12. Unity3D基础36:场景自适应与场景切换
  13. printk打印机别
  14. python绘制缓和曲线_CAD中如何绘制缓和曲线
  15. 红山区智慧城管系统正式上线运行
  16. 关于对ffmpeg中SAR/DAR/PAR的理解
  17. Linux监控程序运行/停止+邮件通知
  18. Google三驾马车——GFS、MapReduce、Bigtable
  19. 怎样购买笔记本电脑-世界十大品牌
  20. div布局系列 - 两端对齐的方法

热门文章

  1. Cosmos OpenSSD--greedy_ftl1.2.0(一)
  2. IOS时间与日期处理
  3. 在centos7中安装MySQL5.7
  4. 网站的domain不在首页的原因
  5. laravel5.4 关于select下拉框读取数据库数据案例
  6. [链接]开方检验原理
  7. JAVA 面向对象-2-继承(Inheritance)
  8. 学习strut时遇到的问题 - Unable to compile class for JSP 错误的解决过程。
  9. vmware智能资源调整
  10. Is this a MS EnterLib DAAB BUG or not?