E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ2730
[
BZOJ2730
]HNOI2012矿场搭建|割点
首先最少数量显然大于1,那么考虑炸掉一个点,如果它不是割点并没有什么影响,如果是割点的话必须要满足炸开之后的每个联通块都有至少一个救援点。如果这个图没有割点的话选两个点放就行了,答案是C(n,2),否则求出每一个割点,把这个图按割点分割成若干个联通块,把这些联通块缩点就是一个树结构,要使树上任何一条边断掉之后分成的两块都有救援点,就一定要在每一个叶子块上放一个救援点。把所有叶子块的size乘起
Tag_king
·
2020-08-08 13:30
BZOJ
【
BZOJ2730
】[HNOI2012] 矿场搭建(找割点)
点此看题面大致题意:一张无向图,要求你在去掉任意一个节点之后,剩余的每个节点都能到达一个救援出口,问至少需要几个救援出口。第一步:TarjanTarjanTarjan求割点首先,我们要跑一遍TarjanTarjanTarjan来求出割点。LinkLinkLinkTarjanTarjanTarjan求割点详见博客Tarjan在图论中的应用(二)——用Tarjan来求割点与割边求完割点后,这样我们就能
chenxiaoran666
·
2018-09-08 12:56
BZOJ
割点与割边
【HNOI2012/
BZOJ2730
】矿场搭建 双联通分量
原题走这里又是一道神奇的题首先我们会发现在同一个双联通分量内如果坍塌的不是割点则不会有任何影响那么我们只考虑割点坍塌的情况如果某个双连通分量有多于一个割点,则无需设置逃生出口否则要在非割点的点上设置一个每个设置了逃生出口双联通分量的大小减去1之后全部乘起来即可注意特判全图只有一个双联通分量的情况,只需2个逃生出口代码如下:#includeusingnamespacestd;intk,m,n,s[1
CRTorlonia
·
2018-03-01 13:25
BZOJ2730
——[HNOI2012]矿场搭建
bzoj2730&worldfinal2011H1、题目大意:就是有一个无向图,让你在里面选择点,使得,无论哪个点没了以后,其他的点都能到达你选择的任何一个点,输出最少选择几个点,和选择最少的方案数,最多有500条边。2、分析:首先我们想如果没得不是割顶,那么其他的都无所谓了。然后如果没有割顶,那就是选两个点,(避免其中你选的点没了)如果有,我们把所有的割顶去掉,得到一些连通分量,那么如果一个连通
qzh_1430586275
·
2016-05-18 08:00
bzoj
双联通分量
HNOI2012
2730
矿场搭建
bzoj2730
矿场搭建 dfs
首先求出所有割顶,然后统计一个点双中有多少割顶。如果=1个,那么只需要在点双中除了割顶的地方建一个;否则不需要建。如果只有一个点双就特判一下建两个。AC代码如下:#include #include #include #defineN10005 usingnamespacestd; intri,n,m,cnt,now,all,tot,dfsclk,fst[N],pnt[N],nxt[N]
lych_cys
·
2016-04-21 09:00
DFS
bzoj2730
: [HNOI2012]矿场搭建
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2730思路:点双缩点对于一个点双,如果它不与任何一个割点相连,那它就要建两个出口与一个相连,就见一个与两个以上相连就不用建方案就是每个点双去掉割点的点数之积#include #include #include #include constintmaxn=1010,maxm=maxn=2)cut
thy_asdf
·
2016-01-03 20:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他