描述
传送门:poj-2983
The galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years ago. Draco established a line of defense called Grot. Grot is a straight line with N defense stations. Because of the cooperation of the stations, Zibu’s Marine Glory cannot march any further but stay outside the line.
A mystery Information Group X benefits form selling information to both sides of the war. Today you the administrator of Zibu’s Intelligence Department got a piece of information about Grot’s defense stations’ arrangement from Information Group X. Your task is to determine whether the information is reliable.
The information consists of M tips. Each tip is either precise or vague.
Precise tip is in the form of P A B X, means defense station A is X light-years north of defense station B.
Vague tip is in the form of V A B, means defense station A is in the north of defense station B, at least 1 light-year, but the precise distance is unknown.
Input
There are several test cases in the input. Each test case starts with two integers $N (0 < N ≤ 1000)$ and $M (1 ≤ M ≤ 100000)$.The next $M$ line each describe a tip, either in precise form or vague form.
Output
Output one line for each test case in the input. Output “Reliable” if It is possible to arrange $N$ defense stations satisfying all the $M$ tips, otherwise output “Unreliable”.
Examples
intput
1
2
3
4
5
6
7
8
9
10
113 4
P 1 2 1
P 2 3 1
V 1 3
P 1 3 1
5 5
V 1 2
V 2 3
V 3 4
V 4 5
V 3 5output
1
2Unreliable
Reliable
思路
- $V\ A\ B$ 的情况很容易想到$Dis[A]-Dis[B]>=1 \Longrightarrow Dis[B]-Dis[A]<=-1 $ 这符合了差分约束的形式,但重点是如何处理P A B X。
- $P\ A\ B\ X$的时候,将$Dis[A]-Dis[B]=x$写成
$\Longrightarrow Dis[A]-Dis[B]<=x,Dis[A]-Dis[B]>=x $
$\Longrightarrow Dis[A]-Dis[B]<=x,Dis[B]-Dis[A]<=-x $,
这样一张图就构造出来了。注意理清楚这个关系,不然太容易写错。- 最后跑一个SPFA看看有没有负环,有就消息不可信。
- 链式向前星存图。
- 在关闭流同步的情况下,cin输入比scanf输入慢了六倍多。
代码
1 | //#include<bits/stdc++.h> |