题目:http://poj.org/problem?id=1523

题目解析:

注意题目输入输入,防止PE,题目就是求割点,并问割点将这个连通图分成了几个子图,算是模版题吧。

  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <algorithm>
  5. #include <stack>
  6. #include <string>
  7. #define N 10010
  8. using namespace std;
  9. struct node
  10. {
  11. int x,y,next;
  12. } eg[*N];
  13. int tt,head[N],dfn[N],low[N],ti,f[N];
  14. void init()
  15. {
  16. memset(head,-,sizeof(head));
  17. tt=;
  18. ti=;
  19. memset(dfn,,sizeof(dfn));
  20. memset(f,,sizeof(f));
  21. }
  22. void add(int xx,int yy)
  23. {
  24. eg[tt].x=xx;
  25. eg[tt].y=yy;
  26. eg[tt].next=head[xx];
  27. head[xx]=tt++;
  28. }
  29. void tarjan(int u,int fa)
  30. {
  31. dfn[u]=low[u]=ti++;
  32. int child=;
  33. for(int i=head[u]; i!=-; i=eg[i].next)
  34. {
  35. int v=eg[i].y;
  36. if(v==fa) continue;
  37. if(!dfn[v])
  38. {
  39. child++;
  40. tarjan(v,u);
  41. low[u]=min(low[u],low[v]);
  42. if(low[v]>=dfn[u]&&fa!=-)
  43. {
  44. f[u]++;
  45. }
  46. }
  47. else //无向图没有横跨边
  48. {
  49. low[u]=min(dfn[v],low[u]);
  50. }
  51. }
  52. if(fa<&&child>) f[u]=child-;
  53. }
  54. int main()
  55. {
  56. int xx,yy,u,v,K=,z;
  57. while(scanf("%d",&u)!=EOF&&u)
  58. {
  59. init();
  60. scanf("%d",&v);
  61. z=max(u,v);
  62. add(u,v);
  63. add(v,u);
  64. while(scanf("%d",&xx)!=EOF&&xx)
  65. {
  66. scanf("%d",&yy);
  67. z=max(z,max(xx,yy));
  68. add(xx,yy);
  69. add(yy,xx);
  70. }
  71. tarjan(,-);
  72. printf("Network #%d\n",++K);
  73. int sum=;
  74. for(int i=; i<=z; i++)
  75. {
  76. if(f[i])
  77. {
  78. sum++;
  79. printf(" SPF node %d leaves %d subnets\n",i,f[i]+);
  80. }
  81. }
  82. if(sum==)
  83. printf(" No SPF nodes\n");
  84. printf("\n");
  85. }
  86. return ;
  87. }

POJ1523:SPF(无向连通图求割点)的更多相关文章

  1. 无向连通图求割点(tarjan算法去掉改割点剩下的联通分量数目)

    poj2117 Electricity Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3603   Accepted: 12 ...

  2. POJ1144:Network(无向连通图求割点)

    题目:http://poj.org/problem?id=1144 求割点.判断一个点是否是割点有两种判断情况: 如果u为割点,当且仅当满足下面的1条 1.如果u为树根,那么u必须有多于1棵子树 2. ...

  3. ZOJ 2588 Burning Bridges(无向连通图求割边)

    题目地址:ZOJ 2588 由于数组开小了而TLE了..这题就是一个求无向连通图最小割边.仅仅要推断dfn[u]是否<low[v],由于low指的当前所能回到的祖先的最小标号,增加low[v]大 ...

  4. Tarjan算法求解无向连通图的割点、割边、点双连通分量和边双连通分量的模板

    历时好几天,终于完工了! 支持无向图四种功能:1.割点的求解 2.割边的求解 3.点双连通分量的求解 4.边双连通分量的求解 全部支持重边!!!!全部支持重边!!!!全部支持重边!!!! 测试数据: ...

  5. 无向连通图求割边+缩点+LCA

    Network Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7082   Accepted: 2555 Descripti ...

  6. 无向连通图求割边(桥)hdu4738,hdu3849

    点击打开链接 题目链接:   hdu 4738 题目大意:   曹操有N个岛,这些岛用M座桥连接起来 每座桥有士兵把守(也可能没有) 周瑜想让这N个岛不连通,但只能炸掉一座桥 并且炸掉一座桥需要派出不 ...

  7. ZOJ2588:Burning Bridges(无向连通图求割边)

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1588 吐下槽,不得不说ZOJ好坑,模版题做了一个多小时. 题意:*    ...

  8. Network -UVa315(连通图求割点)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=5&page=sh ...

  9. Tarjan算法:求解无向连通图图的割点(关节点)与桥(割边)

    1. 割点与连通度 在无向连通图中,删除一个顶点v及其相连的边后,原图从一个连通分量变成了两个或多个连通分量,则称顶点v为割点,同时也称关节点(Articulation Point).一个没有关节点的 ...

随机推荐

  1. [转]各种编码ANSI、GB2312、GBK、GB18030、UNICODE以及UTF-8傻傻分不清!

    计算机编程中的编码一直是让新手非常头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚,看一遍貌似懂了,但实际使用的时候又 ...

  2. Java 9的日期时间格式化趋近Unicode区域设置标准

        1.JDK-8148947,DataTimeFormatter的模式字母“g”:正如在LDML中定义的,字母“g”指代一个“简化儒略日期”,简化儒略日期与正常儒略日期的差别在于:(1)简化儒略 ...

  3. 第四章 Spring.Net 如何管理您的类___让对象了解自己的容器

    我们在开发中,经常需要让对象了解自己所在的容器的信息,例如,有时我们需要让对象知道,对象所在容器的引用是什么,或者是对象在容器中的名称是什么 .Spring.Net 中提供了两个接口,我们使用这两个接 ...

  4. c# T obj = default(T);

    泛型类和泛型方法同时具备可重用性.类型安全和效率,这是非泛型类和非泛型方法无法具备的.泛型通常用在集合和在集合上运行的方法中..NET Framework 2.0 版类库提供一个新的命名空间 Syst ...

  5. swift--使用UserDefaults来进行本地数据存储

    UserDefaults适合轻量级的本地客户端存储,存储一个值,新值可以覆盖旧值,可以重复存储,也可以存储一次,然后直接从UserDefaults里面读取上次存储的信息,很方便,用的时候,宏定义下,直 ...

  6. Java架构学习 转(Spring+SpringMVC+MyBatis+easyUI)

    Spring+SpringMVC+MyBatis+easyUI : http://www.cnblogs.com/han-1034683568/p/6730869.html

  7. DiscuzX的目录权限设置1

    经常有朋友遇到Discuz目录权限设置出错的问题,网上千奇百怪的教程非常多,所谓的终极安全的教程更是满天飞,各种所谓的安全加强软件也随处可见,可实际过程中发现,老手用不上,新手则只会因为这些东西徒增麻 ...

  8. 如何配置samba 要求共享文件夹public

    第一步:在根下执行:mkdir /public 修改下权限:chmod 777 /public第二步:vi /etc/samba/smb.conf修改如下配置:修改security = user为se ...

  9. java生成webservice方法

    参考: https://note.youdao.com/ynoteshare1/index.html?id=c10324bb3b794baece3d2ae9faadc5c1&type=note

  10. 关于MultiByteToWideChar与WideCharToMultiByte代码测试(宽字符与多字节字符的转换)以及字符串的转换代码测试

    #pragma once #include <stdio.h> //getchar() #include <tchar.h> #include <stdlib.h> ...