题目链接:紧急疏散 这薄脊题我代码不知不觉就写长了…… 这道题二分答案显然,然后用最大流\(check\)即可。设当前二分的答案为\(x\),那么把每扇门拆成\(x\)个点,第\(i\)个代表在第\(i\)个时刻从这个门走出去。然后把每个空地往可以到达的们的相应时间连边就可以了。判一下这张图是否满流 ...
分类:
其他好文 时间:
2017-03-25 23:40:30
阅读次数:
215
题意:一个N M的矩形区域。格子如果是'.',那么表示这是一块空地;如果是'X',那么表示这是一面墙,如果是'D',那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也 ...
分类:
其他好文 时间:
2017-03-01 00:14:42
阅读次数:
191
1189: [HNOI2007]紧急疏散evacuate Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域。每个格子如果是'.',那么表示这是一块空地;如果是'X',那么表示这是一面墙,如果是'D',那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在 ...
分类:
其他好文 时间:
2016-12-17 11:30:02
阅读次数:
261
看到黄学长的做法觉得有点疑问网上搜了下发现确实有问题看到PoPoQQQ大爷的啦 http://blog.csdn.net/popoqqq/article/details/41594921然后怎么办呢得把每个出口拆成很多个时刻 每个时刻到t建边 1 #include 2 #include 3 #...
分类:
其他好文 时间:
2015-12-10 21:52:33
阅读次数:
221
我们可以BFS出每个出口到每个人的最短距离, 然后二分答案, 假设当前答案为m, 把一个出口拆成m个表示m个时间, 点u到出口v的距离为d, 那么u->v的[d, m]所有点连边, 然后跑匈牙利去check就行了...其实这道题挺好想但是码量还是挺大的....--------------------...
分类:
其他好文 时间:
2015-12-02 22:27:01
阅读次数:
189
1189: [HNOI2007]紧急疏散evacuateTime Limit:10 SecMemory Limit:162 MBSubmit:1132Solved:412[Submit][Status][Discuss]Description发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M...
分类:
其他好文 时间:
2015-08-29 13:57:03
阅读次数:
300
题解:
首先floyd或者bfs求出每个'.'到各个'D'的最短路
然后注意一个点不能经过一个门去另一个门,所以可以看到我的floyd略有一点点点点不同。。。
然后这个时间限制可以转化为对每个门的拆点,可以证明拆400个就够了。
然后分别对应每个时间可以出去一个人,
而这样在二分时重建图也是很方便的,
代码:
#include
#include
#include...
分类:
其他好文 时间:
2015-02-09 09:29:08
阅读次数:
205
题解:刚开始一直在想堵在一块儿的情况怎么办?发现不会。。。结果看题解发现不用考虑T_T http://blog.sina.com.cn/s/blog_76f6777d01015ogm.html代码:调的蛋疼。。。 1 #include 2 #include 3 #include 4 #inc...
分类:
其他好文 时间:
2014-12-20 20:50:09
阅读次数:
240
【法一】枚举Time(0~N*M): S->'.'(1); 'D'->T(Time); '.'->'D'(dis(用BFS预处理,注意一旦到达'D',BFS就不能继续扩展了,注意dis的初值0x7f)#include#include#includeusing namespace std;#defin...
分类:
其他好文 时间:
2014-12-20 10:24:27
阅读次数:
232
http://www.lydsy.com/JudgeOnline/problem.php?id=1189表示完全不会QAQ。。。。于是膜拜题解orz二分时间。。。。。。。。。。。于是转换成判定性问题:即如何在有限时间内通过。假设当前有t时间可供通过。。。那么每一个门最多能通过t个人。。。。。。。。然...
分类:
其他好文 时间:
2014-12-10 13:56:59
阅读次数:
218