Is the Information Reliable? -POJ2983差分约束
Time Limit: 3000MS | Memory Limit: 131072K |
---|
Description
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”.
Sample Input
3 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 5
Sample Output
Unreliable
Reliable
Source
POJ Monthly–2006.08.27, Dagger
题意:有n个防御塔和m个情报,判断这些情报是不是可信,情报有两种:(1):P u v w 表示u在v的w光年处 。(2):V u v 表示u在v北的一光年之外(包括一光年)
思路:Dis[i]表示i在源点北面Dis[i]光年,所以对于(1):P uv w 可以表示为Dis[u]-Dis[v]=w,所以Dis[u]-Dis[v]>=w且Dis[v]-Dis[u]>=-w,对于(2): V u v 可以表示为Dis[u]-Dis[v]>=1,所以建立图,跑最长路,判断是不是有矛盾即正环,我用的
SPFA,要判断自环。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <string>
#include <vector>
#include <stack>
#include <iostream>
#include <algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MaxN = 1100;
const int MaxM = 100100;
typedef struct node
{
int v,w,next;
}Line;
Line Li[MaxM*2];
int Head[MaxN],top;
int Dis[MaxN],Du[MaxN];
bool vis[MaxN];
int n,m;
void AddEdge(int u,int v,int w)
{
Li[top].v = v ; Li[top].w = w;
Li[top].next = Head[u];
Head[u] = top++;
}
bool SPFA()
{
queue<int>Q;
for(int i=1;i<=n;i++)//相当于有一个超级源点
{
Dis[i] = 0;
vis[i]=true;
Du[i]=1;
Q.push(i);
}
while(!Q.empty())
{
int u = Q.front();
Q.pop();
if(Du[u]>n)//有矛盾
{
return false;
}
for(int i = Head[u];i!=-1;i = Li[i].next)
{
int v = Li[i].v;
if(Dis[v]<Dis[u]+Li[i].w)
{
Dis[v] = Dis[u]+Li[i].w;
if(!vis[v])
{
Q.push(v);
vis[v] = true;
Du[v]++;
}
}
}
vis[u]=false;
}
return true;
}
int main()
{
char Op[5];
int u,v,w;
while(~scanf("%d %d",&n,&m))
{
memset(Head,-1,sizeof(Head));
top = 0;
bool flag=false;
for(int i=1;i<=m;i++)
{
scanf("%s",Op);
if(Op[0]=='P')
{
scanf("%d %d %d",&u,&v,&w);
if(u==v&&w!=0)//自环
{
flag=true;
}
AddEdge(u,v,w);
AddEdge(v,u,-w);
}
else
{
scanf("%d %d",&u,&v);
if(u==v)
{
flag=true;
}
AddEdge(u,v,1);
}
}
if(flag||!SPFA())
{
printf("Unreliable\n");
}
else
{
printf("Reliable\n");
}
}
return 0;
}
Is the Information Reliable? -POJ2983差分约束的更多相关文章
- Is the Information Reliable?(差分约束)
Description The galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years a ...
- POJ 2983:Is the Information Reliable?(差分约束)
题目大意:有n个点在一条直线上,有两类关系:P(x,y,v)表示x在y北边v距离处,V(x,y)表示x在y北边至少1距离出,给出一些这样的关系,判断是否有矛盾. 分析: 差分约束模板题,约束条件P:a ...
- POJ 2983 Is the Information Reliable? 依旧差分约束
http://poj.org/problem?id=2983 题目大意: 星际大战开始了.你购买了情报,需要判断它的准确性.已知地方的根据地在由南向北排成一条直线.P A B X,表示A在B北面距离X ...
- poj2983--Is the Information Reliable?(差分约束)
Is the Information Reliable? Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 11125 A ...
- 【POJ 2983】Is the Information Reliable?(差分约束系统)
id=2983">[POJ 2983]Is the Information Reliable? (差分约束系统) Is the Information Reliable? Time L ...
- POJ 2983 Is the Information Reliable?(差分约束系统)
http://poj.org/problem?id=2983 题意:N 个 defense stations,M条消息,消息有精确和模糊之分,若前边为P.则为精确消息,有两个defense stati ...
- POJ 2983 Is the Information Reliable? 差分约束
裸差分约束. //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #i ...
- POJ 2983 Is the Information Reliable? 信息可靠吗 (差分约束,spfa)
题意:有n个站排成一列,针对每个站的位置与距离关系,现有多个约束条件,约束条件分两种:(1)确定的.明确说明站a距离站b多少个单位距离.(2)不确定的.只知道a在b的左边至少1个单位距离. 根据已知 ...
- 【poj2983】 Is the Information Reliable?
http://poj.org/problem?id=2983 (题目链接) 一个SB错误TLE了半个小时... 题意 一条直线上有n个点,给出m条信息,若为P则表示点A在点B的北方X米,若为V则表示A ...
随机推荐
- Return Largest Numbers in Arrays
题目要求 右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组. 提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素. 答题思路 ...
- iPhone的CSS3媒体查询
iPhone的CSS3媒体查询: 各版本的iPhone媒体查询是根据其分辨率和一些CSS3媒体查询的特性来实现媒体查询的...详见下: iPhone6的媒体查询: @media only screen ...
- 升级到macOS 10.12 mysqlb报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
系统升级到macOS 10.12后启动mysql后,在终端输入mysql 报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' ...
- Error of "Please Check for Sufficient Write File Permissions"
The error message “Please check for sufficient write file permissions” is generated by the Web-based ...
- js 转码 和 .Net 后台解码
为防止 中文乱码,js传值要转码,当js 用 escape() 转码时,.Net 后台可以用 HttpUtility.UrlDecode() 进行解码. 例如: document.cookie = ...
- target-densitydpi
一个屏幕像素密度是由屏幕分辨率决定的,通常定义为每英寸点的数量(dpi).Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度.一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素 ...
- [原创]如何在Parcelable中使用泛型
[原创]如何在Parcelable中使用泛型 实体类在实现Parcelable接口时,除了要实现它的几个方法之外,还另外要定义一个静态常量CREATOR,如下例所示: public static cl ...
- ios 三种对话框拉伸方法
- CentOS6.6安装及配置vsftpd文件服务器
1.安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下: # yum install -y vsftpd db4* 2.修改SELINUX,命令如下: # vim /etc/sys ...
- 正则表达式/g与/i及/gi的意义
g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写