无向图求割点和连通块。

  1. /* POJ2117 */
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <cstdio>
  6. #include <cstring>
  7. #include <cstdlib>
  8. using namespace std;
  9.  
  10. #define MAXN 10005
  11.  
  12. vector<int> vc[MAXN];
  13. int low[MAXN], pre[MAXN];
  14. int n, m;
  15. int dfs_clock, ans, link;
  16.  
  17. void init() {
  18. int i;
  19.  
  20. for (i=; i<n; ++i)
  21. vc[i].clear();
  22.  
  23. memset(pre, , sizeof(int)*n);
  24. dfs_clock = ans = link = ;
  25. }
  26.  
  27. void tarjan(int u, int fa) {
  28. int i, j, k, v;
  29. int child = ;
  30. int cnt = ;
  31.  
  32. pre[u] = low[u] = ++dfs_clock;
  33. for (i=; i<vc[u].size(); ++i) {
  34. v = vc[u][i];
  35. if (!pre[v]) {
  36. ++child;
  37. tarjan(v, u);
  38. low[u] = min(low[u], low[v]);
  39. if (low[v] >= pre[u]) {
  40. ++cnt;
  41. }
  42. } else if (pre[v]<pre[u] && v!=fa){
  43. low[u] = min(low[u], pre[v]);
  44. }
  45. }
  46. if (fa == -) {
  47. if (child > )
  48. ans = max(ans, child-);
  49. } else {
  50. ans = max(ans, cnt);
  51. }
  52. }
  53.  
  54. int main() {
  55. int i, j, k;
  56.  
  57. #ifndef ONLINE_JUDGE
  58. freopen("data.in", "r", stdin);
  59. freopen("data.out", "w", stdout);
  60. #endif
  61.  
  62. while (scanf("%d %d",&n,&m)!=EOF && (n||m)) {
  63. if (m == ) {
  64. printf("%d\n", n-);
  65. continue;
  66. }
  67. init();
  68. for (i=; i<m; ++i) {
  69. scanf("%d %d", &j, &k);
  70. vc[j].push_back(k);
  71. vc[k].push_back(j);
  72. }
  73. for (i=; i<n; ++i) {
  74. if (!pre[i]) {
  75. ++link;
  76. tarjan(i, -);
  77. }
  78. }
  79. printf("%d\n", ans+link);
  80. }
  81.  
  82. return ;
  83. }

【POJ】2117 Electricity的更多相关文章

  1. 【POJ】1704 Georgia and Bob(Staircase Nim)

    Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, ...

  2. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  3. 【BZOJ】【1986】【USACO 2004 Dec】/【POJ】【2373】划区灌溉

    DP/单调队列优化 首先不考虑奶牛的喜欢区间,dp方程当然是比较显然的:$ f[i]=min(f[k])+1,i-2*b \leq k \leq i-2*a $  当然这里的$i$和$k$都是偶数啦~ ...

  4. 【POJ】【2104】区间第K大

    可持久化线段树 可持久化线段树是一种神奇的数据结构,它跟我们原来常用的线段树不同,它每次更新是不更改原来数据的,而是新开节点,维护它的历史版本,实现“可持久化”.(当然视情况也会有需要修改的时候) 可 ...

  5. 【POJ】1222 EXTENDED LIGHTS OUT

    [算法]高斯消元 [题解] 高斯消元经典题型:异或方程组 poj 1222 高斯消元详解 异或相当于相加后mod2 异或方程组就是把加减消元全部改为异或. 异或性质:00 11为假,01 10为真.与 ...

  6. 【POJ】2892 Tunnel Warfare

    [算法]平衡树(treap) [题解]treap知识见数据结构 在POJ把语言从G++换成C++就过了……??? #include<cstdio> #include<algorith ...

  7. 【POJ】【1637】Sightseeing tour

    网络流/最大流 愚人节快乐XD 这题是给一个混合图(既有有向边又有无向边),让你判断是否有欧拉回路…… 我们知道如果一个[连通]图中每个节点都满足[入度=出度]那么就一定有欧拉回路…… 那么每条边都可 ...

  8. 【poj】1001

    [题目] ExponentiationTime Limit: 500MS Memory Limit: 10000KTotal Submissions: 123707 Accepted: 30202De ...

  9. 【POJ】3070 Fibonacci

    [算法]矩阵快速幂 [题解] 根据f[n]=f[n-1]+f[n-2],可以构造递推矩阵: $$\begin{vmatrix}1 & 1\\ 1 & 0\end{vmatrix} \t ...

随机推荐

  1. 编译安装 php 5.4.11

    第一步 先下载 tzr.gz 的php源码包然后 tar zxvf  php-5.4.11.tar.gz然后 cd php-5.4.11 然后复制如下编译代码 ./configure \--prefi ...

  2. Kali Linux 2.0: 安装之后的操作

    1. 添加官方软件库 1) 编辑/etc/apt/sources.list leafpad /etc/apt/sources.list 2) 用#注释掉原有的内容,并添加下述内容: # Regular ...

  3. 简单地使用jquery的validate

    简单地使用jquery的validate ——@梁WP 摘要:本文通过一个很简单的例子,讲解了jquery validate的最基础使用方式. 一.源代码 注意事项都写在代码的注释里了,哈哈. < ...

  4. table完美css样式,table的基本样式,table样式

    table完美css样式,table的基本样式,table样式 >>>>>>>>>>>>>>>>> ...

  5. PL/SQL Developer 远程连接Oracle数据库

    PL/SQL Developer 远程连接Oracle数据库 网上搜了很多方法,这个可行! 1.    配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安装了oracle ...

  6. 百度知道的php爬虫

    原文地址:百度知道的php爬虫作者:好宏杰软件 <?php class spider  {    private $content ;    private $contentlen ;    p ...

  7. Intent.Action

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Outpu ...

  8. jquery 提示信息显示后自动消失的具体实现

    方法一: 复制代码 代码如下: $("#errormsg").html("您的信息输入错误,请重试!").show(300).delay(3000).hide( ...

  9. Universal-Image-Loader 使用步骤

    开源框架利与弊 开源框架给开发者提供了便利,避免了重复造轮子,但是却隐藏了一些开发上的细节,如果不关注其内部实现,那么将不利于开发人员掌握核心技术,当然也谈不上更好的使用它,计划分析项目的集成使用和低 ...

  10. Linq转成sql后的分页方法

    sql 分页 -- Region Parametersdeclare @pageindex int set @pageindex=2set @pagesize=10 DECLARE @p0 Int = ...