BZOJ BLO 1123 (割点)【双连通】
<题目链接>
以下内容转自李煜东的《算法竞赛进阶指南》
题目大意:
现在给定一张连通的无向图,不包含重边。现在输出$n$个整数,表示将第$i$个节点的所有与其它节点相关联的边去掉之后(不去掉$i$节点本身),无向图中有多少个有序对$(u,v)$,满足$u,v$不连通。
解题分析:
首先,很明显,$i$节点是需要分成割点和非割点来进行讨论的。
对于非割点i来说,去除$i$周围的所有边之后,只有$i$点和其它$n-1$个点不连通,所以增加的有序对为$2*(n-1)$个。
对于割点$i$来说,假设在搜索树上,节点i有$t$个子树,则至多能够够分成$t+2$个连通块,每个连通块的节点构成情况为:
1.节点$i$独自构成一个连通块
2.有$t$个连通块,分别由搜索树上$i$的$t$个子树的所有节点分别构成
3.还有除上述所有节点之外的点构成(比如在搜索树上,$i$节点父亲方向的所有节点)
割点有序对的所有情况就能够依据上面几种情况求出,这里就不再进行赘述。
割点的判定法则:
u是割点当且仅当搜索树上存在的一个子节点v,满足:$low[v]>=dfn[u]$
特别地,如果u是搜索树上的根节点,则u是割点当且仅当存在至少两个子节点满足上述条件。
#include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int N = 1e5+, M = 5e5+;
struct Edge{
int to,nxt;
}edge[M<<]; int n,m,cnt,tot,head[N],dfn[N],low[N],sz[N];
bool cut[N];
ll ans[N]; void addedge(int u,int v){
edge[++cnt].to=v,edge[cnt].nxt=head[u];
head[u]=cnt;
}
void Tarjan(int u){
dfn[u]=low[u]=++tot;sz[u]=;
int flag=,sum=;
for(int i=head[u];i;i=edge[i].nxt){
int v=edge[i].to;
if(!dfn[v]){
Tarjan(v);
sz[u]+=sz[v];
low[u]=min(low[u],low[v]);
if(low[v]>=dfn[u]){ //如果满足割点的条件
flag++;
ans[u]+=(ll)(sz[v])*(n-sz[v]); //v所在的连通分量与其它所有点构成的有序对数量
sum+=sz[v];
if(u!= || flag>)cut[u]=true;
}
}else low[u]=min(low[u],dfn[v]);
}
if(cut[u])ans[u]+=(ll)(sum+)*(n-sum-)+(n-); //父亲方向的点与其它点构成的有序对 以及 i节点独自与其它节点构成的有序对
else ans[u]=*(n-);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
int u,v;scanf("%d%d",&u,&v);
addedge(u,v);addedge(v,u);
}
Tarjan(); //因为这是无向图,并且所有的点连通
for(int i=;i<=n;i++)
printf("%lld\n",ans[i]);
}
2019-03-01
BZOJ BLO 1123 (割点)【双连通】的更多相关文章
- 图的割点 桥 双连通(byvoid)
[点连通度与边连通度] 在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合.一个图的点连通度的定义为,最小割点集 ...
- 图论之tarjan真乃神人也,强连通分量,割点,桥,双连通他都会
先来%一下Robert Tarjan前辈 %%%%%%%%%%%%%%%%%% 然后是热情感谢下列并不止这些大佬的博客: 图连通性(一):Tarjan算法求解有向图强连通分量 图连通性(二):Tarj ...
- Tarjan算法——强连通、双连通、割点、桥
Tarjan算法 概念区分 有向图 强连通:在有向图\(G\)中,如果两个顶点\(u, v\ (u \neq v)\)间有一条从\(u\)到\(v\)的有向路径,同时还有一条从\(v\)到\(u\)的 ...
- 图的强连通&双连通
http://www.cnblogs.com/wenruo/p/4989425.html 强连通 强连通是指一个有向图中任意两点v1.v2间存在v1到v2的路径及v2到v1的路径. dfs遍历一个图, ...
- HDU4612(Warm up)2013多校2-图的边双连通问题(Tarjan算法+树形DP)
/** 题目大意: 给你一个无向连通图,问加上一条边后得到的图的最少的割边数; 算法思想: 图的边双连通Tarjan算法+树形DP; 即通过Tarjan算法对边双连通缩图,构成一棵树,然后用树形DP求 ...
- 图论-桥/割点/双连通分量/缩点/LCA
基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点. 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个 ...
- HDU4612Warm up 边双连通 Tarjan缩点
N planets are connected by M bidirectional channels that allow instant transportation. It's always p ...
- BZOJ 2080: [Poi2010]Railway 双栈排序
2080: [Poi2010]Railway Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 140 Solved: 35[Submit][Statu ...
- BZOJ 1093 [ZJOI2007] 最大半连通子图(强联通缩点+DP)
题目大意 题目是图片形式的,就简要说下题意算了 一个有向图 G=(V, E) 称为半连通的(Semi-Connected),如果满足图中任意两点 u v,存在一条从 u 到 v 的路径或者从 v 到 ...
随机推荐
- .NET Windows API库(Cjwdev.WindowsApi)版本2.2发布
https://blog.cjwdev.co.uk/2011/06/12/net-windows-api-library-cjwdev-windowsapi-vesion-2-2-released/# ...
- 在 Confluence 中启用 HTTP 响应压缩
Confluence 能够支持 HTTP 的 GZip 传输编码.这个意味着 Confluence 将可以把数据压缩后传输给用户,这种配置能够针对不稳定的互联网状态下的传输速度缓慢和不稳定并且能够降低 ...
- Confluence 6 通过 SSL 或 HTTPS 运行 - 重定向所有的 URLS 到 HTTPS 的安全考虑
尽管现在 HTTPS 现在已经激活并且可用了.老的 HTTP URLs (http://localhost:8090)还是可以访问的.现在你需要重定向所有 URLs 到他们的 HTTPS 链接中.你可 ...
- Confluence 6 为空白空间重置原始默认内容
希望重置为原始的默认内容: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链接. 在左侧的面板中选择 全局模板和蓝图(Global Templates and ...
- U盘权限不足,只读文件系统
https://blog.csdn.net/baocheng_521/article/details/77161791 用第一种方式成功
- Android Studio 配置虚拟设备的镜像文件的存放路径
操作系统:Windows 10 x64 IDE:Android Studio 3.3 Android Studio创建的虚拟设备的默认存放路径是位于C盘,这导致C盘的可用容量变小. 所以,我决定要将虚 ...
- Allegro PCB Design GXL (legacy) 刷新PCB封装(Package)中的焊盘(Padstack)
Allegro PCB Design GXL (legacy) version 16.6-2015 “人有失足,马有失蹄”. 像这个电位器的封装的Pin 6,在制作Padstack时,因没有添加SOL ...
- easyui之自定义字体图标(鼠标覆盖时切换颜色)
项目要求是自定义字体图标,使用easyui框架结构,众所周知easyui强功能弱样式,字体图标其实就是一张图片.要达到切换图标颜色的效果,要么就是有两套图,使用js控制.但是我这个人比较懒,不喜欢做复 ...
- 总结Java虚拟机内存区域模型
本篇文章主要来总结一下Java虚拟机内存的各个区域,以及这些区域的作用.服务对象以及其中可能产生的问题,作为大家的面试宝典. 首先我们来看一下Java运行时的数据区域,Java虚拟机在执行Java程序 ...
- java 数据类型相关的内容
√基本数据默认值是:0 √ 引用类型是默认值:null 局部变量不能初始化 单精度浮点有后缀: Flong后面如果不加后缀L系统将默认为int类型 不管单精度还是双精度浮点,都比整数类型的范围大,原因 ...