[POI2008]BLO

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 1540  Solved: 711
[Submit][Status][Discuss]

Description

Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通。

Input

输入n<=100000 m<=500000及m条边

Output

输出n个数,代表如果把第i个点去掉,将有多少对点不能互通。

Sample Input

5 5
1 2
2 3
1 3
3 4
4 5

Sample Output

8
8
16
14
8

HINT

题解:这道题目看着就比较水,只有割点的时候才会有结果。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<algorithm>
  6. #include<cmath>
  7. #include<vector>
  8.  
  9. #define N 100007
  10. #define M 500007
  11. #define ll long long
  12. using namespace std;
  13. inline int read()
  14. {
  15. int x=,f=;char ch=getchar();
  16. while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
  17. while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
  18. return x*f;
  19. }
  20.  
  21. int n,m;
  22. ll ans[N];
  23. int tim,dfn[N],low[N],siz[N];
  24. int cnt,hed[N],rea[M<<],nxt[M<<];
  25.  
  26. void add(int u,int v)
  27. {
  28. nxt[++cnt]=hed[u];
  29. hed[u]=cnt;
  30. rea[cnt]=v;
  31. }
  32. void add_two_way(int u,int v)
  33. {
  34. add(u,v);
  35. add(v,u);
  36. }
  37. void Tarjan(int u)
  38. {
  39. ll res=;
  40. siz[u]=,dfn[u]=low[u]=++tim;
  41. for (int i=hed[u];i!=-;i=nxt[i])
  42. {
  43. int v=rea[i];
  44. if (dfn[v]) low[u]=min(low[u],dfn[v]);
  45. else
  46. {
  47. Tarjan(v);
  48. siz[u]+=siz[v];
  49. low[u]=min(low[u],low[v]);
  50. if (dfn[u]<=low[v])
  51. {
  52. ans[u]+=res*siz[v];
  53. res+=siz[v];
  54. }
  55. }
  56. }
  57. ans[u]+=res*(n-res-);//不然res是0
  58. }
  59. #undef N
  60. #undef M
  61. int main()
  62. {
  63. memset(hed,-,sizeof(hed));
  64. n=read(),m=read();
  65. for (int i=;i<=m;i++)
  66. add_two_way(read(),read());
  67. Tarjan();
  68. for (int i=;i<=n;i++)
  69. printf("%lld\n",(ans[i]+n-)*);
  70. }

bzoj 1123 [POI2008]BLO Tarjan求割点的更多相关文章

  1. BZOJ 1123: [POI2008]BLO( tarjan )

    tarjan找割点..不是割点答案就是(N-1)*2, 是割点的话就在tarjan的时候顺便统计一下 ------------------------------------------------- ...

  2. BZOJ 1123: [POI2008]BLO

    1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1030  Solved: 440[Submit][Status] ...

  3. BZOJ 2730 矿场搭建 Tarjan求割点

    思路: Tarjan求出来点双&割点 判一判就行了 //By SiriusRen #include <stack> #include <cstdio> #include ...

  4. BZOJ 1123: [POI2008]BLO 求割点_乘法原理_计数

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n&l ...

  5. BZOJ 1123 [POI2008]BLO(Tarjan算法)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1123 [题目大意] Byteotia城市有n个towns,m条双向roads. 每条r ...

  6. bzoj 1123 [POI2008]BLO——点双连通分量

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1123 点双连通分量缩点,然后各种各样. 结果不会写了.比如新连边.记录一个点是割点缩成的点还 ...

  7. UESTC 900 方老师炸弹 --Tarjan求割点及删点后连通分量数

    Tarjan算法. 1.若u为根,且度大于1,则为割点 2.若u不为根,如果low[v]>=dfn[u],则u为割点(出现重边时可能导致等号,要判重边) 3.若low[v]>dfn[u], ...

  8. POJ 1144 Network(Tarjan求割点)

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12707   Accepted: 5835 Descript ...

  9. poj 1523 SPF(tarjan求割点)

    本文出自   http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...

随机推荐

  1. 孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解

    孤荷凌寒自学python第八十六天对selenium模块进行较详细的了解 (今天由于文中所阐述的原因没有进行屏幕录屏,见谅) 为了能够使用selenium模块进行真正的操作,今天主要大范围搜索资料进行 ...

  2. 改maven下创建的动态网站依赖的jre版本

    问题描述 通过maven创建一个动态网站后,eclipse会提示一个提醒 Build path specifies execution environment J2SE-1.5. There are ...

  3. 各类4G手机进入工参模式查看手机信息

    随着移动4G正式商用,LTE网络建设日益完善,LTE用户日趋增多,通过进入其工程模式读取服务小区电平RSRP.物理小区标识PCI和频点号等基本信息的方式来判断测试点信号质量的优劣.由于市场上商用终端品 ...

  4. 图的遍历——DFS(邻接矩阵)

    递归 + 标记 一个连通图只要DFS一次,即可打印所有的点. #include <iostream> #include <cstdio> #include <cstdli ...

  5. 自测之Lesson3:makefile

    题目:编写一个makefile文件,要求编译当前目录内的所有.c文件. 完成代码: .PHONY:clean all SRC=$(wildcard *.c) BIN=$(SRC:%.c=%) all: ...

  6. ACM 第四天

    A - 最短路 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的 ...

  7. Sparsity Invariant CNNs

    文章链接 Abstract 本文研究稀疏输入下的卷积神经网络,并将其应用于稀疏的激光扫描数据的深度信息完成实验.首先,我们表明,即使当丢失数据的位置提供给网络时,传统卷积网络在应用于稀疏数据时性能也很 ...

  8. <Effective C++>读书摘要--Inheritance and Object-Oriented Design<二>

    <Item 36> Never redefine an inherited non-virtual function 1.如下代码通过不同指针调用同一个对象的同一个函数会产生不同的行为Th ...

  9. JSP在页面加载时调用servlet的方法

    方法:先在JS里面写一个调用servlet的事件(可以利用ajax),然后利用<body>标签的onload调用这个事件. 代码如下: jsp文件代码如下: <%@ page lan ...

  10. DVD与CD区别

    经常听朋友说什么DVD什么CD什么的,不知道到底有什么区别,专门百度找了下,找到以下资料 ======================================================= ...