题目请戳这里

题目大意:给一张无向图,求割点数量。

题目分析:tarjan算法求割点。关于无向图割点,这里说的很清楚了。直接建图跑一遍tarjan算法即可。

详情请见代码:

  1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6. const int N = 101;
  7. int adj[N][N];
  8. bool flag[N][N],vis[N];
  9. int low[N],dfn[N],subnets[N];
  10. int n,dfns;
  11. char s[N];
  12.  
  13. void dfs(int cur)
  14. {
  15. int i;
  16. vis[cur] = true;
  17. dfn[cur] = low[cur] = dfns ++;
  18. for(i = 1;i <= adj[cur][0];i ++)
  19. {
  20. if(vis[adj[cur][i]] == false)
  21. {
  22. dfs(adj[cur][i]);
  23. low[cur] = min(low[cur],low[adj[cur][i]]);
  24. if(low[adj[cur][i]] >= dfn[cur])
  25. subnets[cur] ++;
  26. }
  27. else
  28. low[cur] = min(low[cur],dfn[adj[cur][i]]);
  29. }
  30. }
  31.  
  32. void tarjan()
  33. {
  34. int i;
  35. memset(vis,false,sizeof(vis));
  36. memset(subnets,0,sizeof(subnets));
  37. dfns = 1;
  38. for(i = 1;i <= n;i ++)
  39. if(vis[i] == false)
  40. {
  41. subnets[i] --;
  42. dfs(i);
  43. }
  44. int ans = 0;
  45. for(i = 1;i <= n;i ++)
  46. if(subnets[i] > 0)
  47. ans ++;
  48. printf("%d\n",ans);
  49. }
  50.  
  51. int main()
  52. {
  53. int i,j,p;
  54. freopen("in.txt","r",stdin);
  55. while(scanf("%d",&n),n)
  56. {
  57. memset(flag,false,sizeof(flag));
  58. memset(adj,0,sizeof(adj));
  59. while(scanf("%d",&i),i)
  60. {
  61. gets(s);
  62. p = 0;
  63. while(s[p] && s[p] == ' ')
  64. p ++;
  65. while(sscanf(s + p,"%d",&j) == 1)
  66. {
  67. if(flag[i][j] == false)
  68. {
  69. flag[i][j] = flag[j][i] = true;
  70. adj[i][++ adj[i][0]] = j;
  71. adj[j][++ adj[j][0]] = i;
  72. }
  73. while(s[p] && s[p] != ' ')
  74. p ++;
  75. while(s[p] && s[p] == ' ')
  76. p ++;
  77. }
  78. }
  79. tarjan();
  80. }
  81. return 0;
  82. }
  83. //188K 16MS

poj1144Network(无向图割点数)的更多相关文章

  1. POJ1144 Network 无向图割点

    题目大意:求以无向图割点. 定义:在一个连通图中,如果把点v去掉,该连通图便分成了几个部分,则v是该连通图的割点. 求法:如果v是割点,如果u不是根节点,则u后接的边中存在割边(u,v),或者v-&g ...

  2. tarkjan求无向图割点模板

    #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,m; ; ; struct node { ...

  3. HDU4587--TWO NODES(无向图割点,暴力出奇迹)这是我见过的时间最长的题。。。

    TWO NODES Time Limit: 24000/12000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  4. UVA315- Network(无向图割点)

    题目链接 题意: 给出一张无向图,求割点的个数 思路:非常裸的题目.直接套用模版就可以. 代码: #include <iostream> #include <cstdio> # ...

  5. Tarjan求无向图割点、桥详解

    tarjan算法--求无向图的割点和桥   一.基本概念 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥无向连通图中,如果删除某边后,图变成不 ...

  6. POJ 1523 SPF (无向图割点)

    <题目链接> 题目大意: 给你一个连通的无向图,问你其中割点的编号,并且输出删除该割点后,原图会被分成几个连通分量. 解题分析: Tarjan求割点模板题. #include <cs ...

  7. POJ1523 SPF[无向图割点]

    SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8139   Accepted: 3723 Description C ...

  8. POJ1144Network(求割点个数)

    题目链接 题意:一共n割点,然后若干行,每行第一个输入一个点,然后若干个点表示与他相连,0单独一行表示一个样例的结束.然后求图中的割点个数 割点:去掉该点之后得到的图不在连通,那么该店就是割点 一般割 ...

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

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

随机推荐

  1. WAS

    http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Fin ...

  2. Windows Components Reference(Windows组件参考)

    原文 http://www.msfn.org/board/topic/127287-windows-components-reference/ green means the component na ...

  3. (Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码

    原文 http://bbs.itiankong.com/thread-30983-1-5.html 有6天没研究pascal代码了,昨天晚上突然来了灵感,终于解决了苦思冥想好几天没能解决的问题, 因此 ...

  4. tomcat优化-有改protocol 和 缓存 集群方案

    tomcat优化 在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验. 1. 服务器资源 服务器所能提供CPU.内存.硬 ...

  5. docker文章

    https://training.docker.com/self-paced-training http://special.csdncms.csdn.net/BeDocker/ http://clo ...

  6. Bayesian Formulation on Cooperative Tracking

    Suppose a joint state representing a set of \(N_{n}\) nodes moving in a field\[    \textbf{X}=    \b ...

  7. 【hihocoder 1257 Snake Carpet】构造

    2015北京区域赛现场赛第4题. 题面:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf OJ链接:http://hih ...

  8. ACM计算几何题目推荐

    //第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...

  9. skynet-源码分析1:目录下的文件整理

    skynet是c和lua结合的一个开源游戏引擎,是云风所写,对我等屌丝来说,是很好的参考 先整理一下文件结构,然后再慢慢深入 主目录下有10个目录,105个文件, 具体包含的情况,我简单画了个图,明天 ...

  10. 杭电 HDU 4608 I-number

    http://acm.hdu.edu.cn/showproblem.php?pid=4608 听说这个题是比赛的签到题......无语..... 问题:给你一个数x,求比它大的数y. y的要求: 1. ...