poj 3084(最小割)

原创 2016年06月01日 20:47:13
Panic Room
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 2069   Accepted: 1075

Description

You are the lead programmer for the Securitron 9042, the latest and greatest in home security software from Jellern Inc. (Motto: We secure your stuff so YOU can't even get to it). The software is designed to "secure" a room; it does this by determining the minimum number of locks it has to perform to prevent access to a given room from one or more other rooms. Each door connects two rooms and has a single control panel that will unlock it. This control panel is accessible from only one side of the door. So, for example, if the layout of a house looked like this: 
 
with rooms numbered 0-6 and control panels marked with the letters "CP" (each next to the door it can unlock and in the room that it is accessible from), then one could say that the minimum number of locks to perform to secure room 2 from room 1 is two; one has to lock the door between room 2 and room 1 and the door between room 3 and room 1. Note that it is impossible to secure room 2 from room 3, since one would always be able to use the control panel in room 3 that unlocks the door between room 3 and room 2. 

Input

Input to this problem will begin with a line containing a single integer x indicating the number of datasets. Each data set consists of two components:
  1. Start line – a single line "m n" (1 <=m<= 20; 0 <=n<= 19) where m indicates the number of rooms in the house and n indicates the room to secure (the panic room).
  2. Room list – a series of m lines. Each line lists, for a single room, whether there is an intruder in that room ("I" for intruder, "NI" for no intruder), a count of doors c (0 <= c <= 20) that lead to other rooms and have a control panel in this room, and a list of rooms that those doors lead to. For example, if room 3 had no intruder, and doors to rooms 1 and 2, and each of those doors' control panels were accessible from room 3 (as is the case in the above layout), the line for room 3 would read "NI 2 1 2". The first line in the list represents room 0. The second line represents room 1, and so on until the last line, which represents room m - 1. On each line, the rooms are always listed in ascending order. It is possible for rooms to be connected by multiple doors and for there to be more than one intruder!

Output

For each dataset, output the fewest number of locks to perform to secure the panic room from all the intruders. If it is impossible to secure the panic room from all the intruders, output "PANIC ROOM BREACH". Assume that all doors start out unlocked and there will not be an intruder in the panic room.

Sample Input

3
7 2
NI 0
I 3 0 4 5
NI 2 1 6
NI 2 1 2
NI 0
NI 0
NI 0
7 2
I 0
NI 3 0 4 5
NI 2 1 6
I 2 1 2
NI 0
NI 0
NI 0
4 3
I 0
NI 1 2
NI 1 0
NI 4 1 1 2 2

Sample Output

2
PANIC ROOM BREACH

1

这道题的题意很难理解,参考了别人的:http://blog.csdn.net/chenzhenyu123456/article/details/48177805

说一下建图过程吧:最小割模型

将所有被侵入的点与超级源点连接,容量为无穷大,汇点为保护点。a->b建立一条无穷大的边,因为门锁没锁,对于a->b来说是不起作用的,都可以通过,那么我们就不需要它来决策了,直接把边赋为无穷大;b->a就不同,门锁了b->a是无法进入的,所以我们需要封锁这条边来防止入侵,赋值为1,这样跑一边最大流即可求出最小割了。


                

poj 3084 最小割

简单的求最小割 不知道为什么这么少人A #include #include #include #include using namespace std; const int maxn=30,...
  • yrleep
  • yrleep
  • 2013年10月24日 20:57
  • 491

poj 3084(最小割)

大意就是,有一些房间,初始时某些房间之间有一些门,并且这些门是打开的,也就是可以来回走动的,但是这些门是确切属于某个房间的,也就是说如果要锁门,则只有在那个房间里才能锁,这跟现实很符合啊,不然随便个人...
  • u010126535
  • u010126535
  • 2014年10月16日 13:47
  • 330

poj 3084(最小割)

题目链接:http://poj.org/problem?id=3084 思路:题目的意思是不让入侵者进入保护的房间,至少需要锁几道门。网络流建模:设一个超级源点,源点与有入侵者的房间相连,边容量为i...
  • zjsyhjh
  • zjsyhjh
  • 2014年05月26日 18:05
  • 215

poj 3084(最小割。。。。。)

Panic Room Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1415   Acc...
  • water_glass
  • water_glass
  • 2011年09月28日 14:14
  • 452

POJ 3204 最小割边

Ikki's Story I - Road Reconstruction Time Limit: 2000MS   Memory Limit: 131072K Total Submissi...
  • u012358934
  • u012358934
  • 2014年03月09日 15:35
  • 1027

POJ 3084 Panic Room (最小割)

题意和分析转自http://blog.csdn.net/sdj222555/article/details/7798949 大意就是,有一些房间,初始时某些房间之间有一些门,并且这些门是打开...
  • hill_555
  • hill_555
  • 2013年05月15日 21:49
  • 505

POJ 3084 Panic Room 最小割

题意很蛋疼,看了好久才明白过来什么意思 大意就是,有一些房间,初始时某些房间之间有一些门,并且这些门是打开的,也就是可以来回走动的,但是这些门是确切属于某个房间的,也就是说如果要锁门,则只有在那个房...
  • sdj222555
  • sdj222555
  • 2012年07月29日 14:26
  • 1584

POJ 3084 Panic Room //最小割

Panic RoomTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 909 Accepted: 427DescriptionYou ...
  • hqd_acm
  • hqd_acm
  • 2010年10月03日 10:49
  • 586

POJ 3084 Panic Room 最小割

根据题意 要求锁一些门 使得入侵者无法到达指定的房间 这个是不是很像网络流当中的最小割 即把图中所有点分成 S T 两个集合 使得满流后不再连通 而最小割是网络流当中容量最小的割 这恰好又满足题目所求...
  • s_h_r
  • s_h_r
  • 2015年05月28日 21:16
  • 387

POJ 3084 Panic Room(最小割)

POJ 3084 Panic Room(最小割) http://poj.org/problem?id=3084 题意:        有一些房间,初始时某些房间之间有一些门,并且这些门是打开的,也就是...
  • u013480600
  • u013480600
  • 2014年09月02日 21:26
  • 623
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 3084(最小割)
举报原因:
原因补充:

(最多只允许输入30个字)