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
BZOJ1189
bzoj 1189: [HNOI2007]紧急疏散evacuate 分层图最大流_拆点_二分
bzoj1189
:[HNOI2007]紧急疏散evacuate分层图最大流_拆点_二分Code:#include#definesetIO(s)freopen(s".in","r",stdin)#definemaxn100000
EM-LGH
·
2019-05-18 21:00
BZOJ1189
: [HNOI2007]紧急疏散evacuate(二分+最大流拆点法)
题意:传送门题解:直接二分答案mid,也就是所有人安全撤离所需时间,通过最大流来判断逃生时间为mid时,所有人能否安全撤离,能则缩小边界:将源点S向每个空地连一条容量为1的边,表示每个空地初始时有一个人;因为每一秒钟只能有一个人移动到门的位置,我们要将每个门拆成mid个点,分别表示时刻为第1~mid秒的门,并向汇点T连一条容量为1的边;为了简化问题,在二分答案前我们先BFS求出每块空地到每个门所需
肘子zhouzi
·
2019-03-15 21:35
网络流
[
bzoj1189
][网络流-最大流][二分]紧急疏散evacuate
Description发生了火警,所有人员需要紧急疏散!假设每个房间是一个NM的矩形区域。每个格子如果是’.’,那么表示这是一块空地;如果是’X’,那么表示这是一面墙,如果是’D’,那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。最初,每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也可以站着不动。疏散开始后,每
Rose_max
·
2018-01-30 14:27
bzoj
二分
网络流
【
BZOJ1189
】紧急疏散(二分答案,最大流)
题面Description发生了火警,所有人员需要紧急疏散!假设每个房间是一个NM的矩形区域。每个格子如果是’.’,那么表示这是一块空地;如果是’X’,那么表示这是一面墙,如果是’D’,那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。最初,每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也可以站着不动。疏散开始后
小蒟蒻yyb
·
2018-01-06 14:49
网络流
二分
各省省选
BZOJ
bzoj1189
[HNOI2007]紧急疏散EVACUATE spfa+网络流+二分
这个题是非常暴力的匹配问题。首先最好想的思路是给每个人分门的决策,每个人到每个门的距离直接暴力最短路即可但不能算出一个门被多个人经过的情况所以就有了暴力的想法,再给每个人、对每一个门分配一个时间。这样的话时间的范围就必须确定,不然就是动态借边的网络流由于时间满足二分的条件,所以二分+网络流检验即可码:#include#include#include#include#includeusingname
_hlly_
·
2017-11-29 21:43
题目
bzoj1189
[HNOI2007]紧急疏散evacuate(二分答案+bfs+最大流判是否满流)
首先bfs处理出每个人到每个门所需的时间。然后二分答案,对于所有人能到的所有门,建边,边权为1,从源点向所有人建边,边权为1,从所有门向汇点建边,边权为mid(最多出去mid个人),dinic跑最大流看是否满流。然后这是错的。考虑这样一个样例:45XXDXXXX.XXX…XXXDXX答案应该是3,而我们输出了2.原因就在于有一个门两人都只能在2及以后才能到。因此我们还得把每个门按时间拆成mid个门
Icefox_zhx
·
2017-11-23 16:19
二分答案
bzoj
搜索
-----网络流-------
最大流
BZOJ1189
【HNOI2007】紧急疏散evacuate
【HNOI2007】紧急疏散evacuateTimeLimit:10SecMemoryLimit:128MBDescription发生了火警,所有人员需要紧急疏散!假设每个房间是一个NM的矩形区域。每个格子如果是’.’,那么表示这是一块空地;如果是’X’,那么表示这是一面墙,如果是’D’,那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。最初,每块空地上都
AZRAEL_DEATH
·
2017-09-18 23:35
网络流
bzoj1189
: [HNOI2007]紧急疏散evacuate(二分+最大流+宽搜)
题目传送门这道题真的是一道好题啊!!!!表示做了两个小时。。bzoj的数据是真的强(pi)。一开始yy了个图结果发现错了。上网看了看题解。按照构图敲了个代码。错了!!!听说被一组神数据卡掉了。数据如下。45XXDXXXX.XXX…XXXDXX按照题解的方法跑出来答案是2但是手算是3。很无语,只好自己yy了。。所以想到了拆点。建图是这样的:st连接每个空地,流量为1(表示每个空地一开始有一个人)每个
Hanks_o
·
2017-09-16 14:01
网络流
宽搜
二分
BZOJ
Summary
这两天还会更新一大波内容网络流:1.和时间有关的问题:按照时间拆点,分层图
BZOJ1189
紧急疏散SD二轮集训D3T3第三题BZOJ1570BlueMary的旅行POJ3686TheWindy’sBZOJ1070
FromATP
·
2017-07-10 18:15
我也不知道该算什么分类
最大流——
BZOJ1189
/Luogu3191 [HNOI2007]紧急疏散evacuate
题面:BZOJ1189Luogu3191首先我们预处理出每个空地到每扇门的最短时间然后我们二分时间t,然后把每扇门拆成t个点接下来建图:超级原点->每块空地(流1),每扇门的每一个时刻->超级汇点(流1)然后对于每块空地,枚举能够在t时间内到达的门,连上边(流1,空地->门(对应的最短时间那个时刻点))然后等待的问题只要每扇门的某一时刻点向下一时刻点连上就行了(流INF)然后跑最大流判断是否满流(
jzq233jzq
·
2017-06-13 13:33
图论
网络最大流/最小割
最短路/K短路
二分/三分
Bzoj1189
[HNOI2007]紧急疏散evacuate
原文链接:http://www.cnblogs.com/SilverNebula/p/6189083.html1189:[HNOI2007]紧急疏散evacuateTimeLimit:10SecMemoryLimit:128MBSubmit:2293Solved:715Description发生了火警,所有人员需要紧急疏散!假设每个房间是一个NM的矩形区域。每个格子如果是'.',那么表示这是一块空
dezhen7015
·
2016-12-17 09:00
[
BZOJ1189
][HNOI2007]紧急疏散evacuate(二分+网络流)
======这里放传送门======题解网络流的神建图。。把每个门拆成很多点分别对应每个时刻的情况,bfs出每个门到每个人的距离dis,S向每个人连边流量为1,如果某个人在时限之内能走到某个门,就把这个人连到那个门的对应到达时刻的那个点,流量为1。然后每个门的每一个时刻能够承受的等待时间是不一样的,如果这个门是i时刻的,时限为mid,那么这个门最多还可以承受mid-i+1个单位时间的等待,把这条边
FromATP
·
2016-07-24 22:23
复杂度很玄学的搜索
BZOJ
各种二分
看起来是网络流
[
BZOJ1189
][HNOI2007]紧急疏散evacuate(bfs+二分+最大流)
题目描述传送门题解首先bfs得出每个门到每个点的最短距离dis。二分最短时间+最大流判定。如何判定?假设二分到mid的时间,对于每个空地I,s->I,1,对于每一个门I,I->t,mid;在这两排点的中间需要再加一排点,是把每一个门拆成mid个得到的,每个表示某个人用了某些时间到达了这个门。那么显然,对于某一个人i,某个门j,如果dis[i][j]j_dis[i][j],1;最后对于每一个门拆成的
Clove_unique
·
2016-05-04 10:57
题解
搜索
省选
网络流
二分
[
BZOJ1189
][HNOI2007]紧急疏散evacuate(bfs+二分+最大流)
题目描述传送门题解首先bfs得出每个门到每个点的最短距离dis。二分最短时间+最大流判定。如何判定?假设二分到mid的时间,对于每个空地I,s->I,1,对于每一个门I,I->t,mid;在这两排点的中间需要再加一排点,是把每一个门拆成mid个得到的,每个表示某个人用了某些时间到达了这个门。那么显然,对于某一个人i,某个门j,如果dis[i][j]j_dis[i][j],1;最后对于每一个门拆成的
Clove_unique
·
2016-05-04 10:00
bfs
最大流
二分
hnoi
bzoj
【
BZOJ1189
】[HNOI2007]紧急疏散evacuate【最大流】【二分】
【题目链接】先处理出每个人到每个门的最短距离。二分答案mid。从S到每个人连边,容量为1。每个门拆为mid个点,第i个点代表第i个时刻的门,每个人向第(最短距离)个点~第mid个点连边。每个门向T连边。跑最大流,看是否满流。一直担心建图错,结果没错,倒是忘了判impossible了。/*Pigonometry*/#include#include#includeusingnamespacestd;c
BraketBN
·
2016-04-21 16:59
二分
网络流
【
BZOJ1189
】[HNOI2007]紧急疏散evacuate【最大流】【二分】
【题目链接】先处理出每个人到每个门的最短距离。二分答案mid。从S到每个人连边,容量为1。每个门拆为mid个点,第i个点代表第i个时刻是否的门,每个人向第(最短距离)个点~第mid个点连边。每个门向T连边。跑最大流,看是否满流。一直担心建图错,结果没错,倒是忘了判impossible了。/*Pigonometry*/ #include #include #include usingnamespa
BraketBN
·
2016-04-21 16:00
[
bzoj1189
][HNOI2007]紧急疏散
1189:[HNOI2007]紧急疏散evacuateTimeLimit:10SecMemoryLimit:128MBSubmit:1420Solved:510[Submit][Status][Discuss]Description发生了火警,所有人员需要紧急疏散!假设每个房间是一个NM的矩形区域。每个格子如果是’.’,那么表示这是一块空地;如果是’X’,那么表示这是一面墙,如果是’D’,那么表示
FZHvampire
·
2016-01-21 16:21
网络流
二分
【
bzoj1189
】[HNOI2007]紧急疏散evacuate 二分+dinic
Description发生了火警,所有人员需要紧急疏散!假设每个房间是一个NM的矩形区域。每个格子如果是’.’,那么表示这是一块空地;如果是’X’,那么表示这是一面墙,如果是’D’,那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。最初,每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也可以站着不动。疏散开始后,每
LOI_DQS
·
2015-11-27 19:00
dinic
【最大流+二分】
bzoj1189
紧急疏散
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1189题目大意:给你一个n*m的区域,有门和墙,每块空地上有一个人,疏散开始后每块空地可以站无数个人,但是门每次只能经过一个人,请问最少需要多少时间才能全部撤到门外建一个源点s连接到所有空地,流量为1,然后二分最长时间,空地向可以到达的门连一条边(这里的可到达是指在二分出的时间内可到达),所
FAreStorm
·
2015-10-09 11:35
题解
【
BZOJ1189
】【HNOI2007】紧急疏散evacuate 二分答案+最大流check
#includeintmain(){puts("转载请注明出处");puts("地址:blog.csdn.net/vmurder/article/details/43666807");}题解:首先floyd或者bfs求出每个'.'到各个'D'的最短路然后注意一个点不能经过一个门去另一个门,所以可以看到我的floyd略有一点点点点不同。。。然后这个时间限制可以转化为对每个门的拆点,可以证明拆400个
空灰冰魂
·
2015-02-09 07:23
网络流
最大流
二分答案
【
BZOJ1189
】【HNOI2007】紧急疏散evacuate 二分答案+最大流check
#include intmain() { puts("转载请注明出处"); puts("地址:blog.csdn.net/vmurder/article/details/43666807"); }题解:首先floyd或者bfs求出每个'.'到各个'D'的最短路然后注意一个点不能经过一个门去另一个门,所以可以看到我的floyd略有一点点点点不同。。。然后这个时间限制可以转化为对每个门的拆点,可以证明
Vmurder
·
2015-02-09 07:00
最大流
二分答案
BZOJ1189
HNOI2007
紧急疏散evacuate
上一页
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
其他