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差分约束的更多相关文章

  1. Is the Information Reliable?(差分约束)

    Description The galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years a ...

  2. POJ 2983:Is the Information Reliable?(差分约束)

    题目大意:有n个点在一条直线上,有两类关系:P(x,y,v)表示x在y北边v距离处,V(x,y)表示x在y北边至少1距离出,给出一些这样的关系,判断是否有矛盾. 分析: 差分约束模板题,约束条件P:a ...

  3. POJ 2983 Is the Information Reliable? 依旧差分约束

    http://poj.org/problem?id=2983 题目大意: 星际大战开始了.你购买了情报,需要判断它的准确性.已知地方的根据地在由南向北排成一条直线.P A B X,表示A在B北面距离X ...

  4. poj2983--Is the Information Reliable?(差分约束)

    Is the Information Reliable? Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 11125   A ...

  5. 【POJ 2983】Is the Information Reliable?(差分约束系统)

    id=2983">[POJ 2983]Is the Information Reliable? (差分约束系统) Is the Information Reliable? Time L ...

  6. POJ 2983 Is the Information Reliable?(差分约束系统)

    http://poj.org/problem?id=2983 题意:N 个 defense stations,M条消息,消息有精确和模糊之分,若前边为P.则为精确消息,有两个defense stati ...

  7. POJ 2983 Is the Information Reliable? 差分约束

    裸差分约束. //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #i ...

  8. POJ 2983 Is the Information Reliable? 信息可靠吗 (差分约束,spfa)

    题意:有n个站排成一列,针对每个站的位置与距离关系,现有多个约束条件,约束条件分两种:(1)确定的.明确说明站a距离站b多少个单位距离.(2)不确定的.只知道a在b的左边至少1个单位距离.  根据已知 ...

  9. 【poj2983】 Is the Information Reliable?

    http://poj.org/problem?id=2983 (题目链接) 一个SB错误TLE了半个小时... 题意 一条直线上有n个点,给出m条信息,若为P则表示点A在点B的北方X米,若为V则表示A ...

随机推荐

  1. outlook2013 更改邮件文件位置

    找了许多也是不行, 最后自己来多次试验,原来就是这么容易 ., 1: 先增加你的邮件账号,然后找到数据文件的位置 2: 关闭OUTLOOK 2013,把上一步中的数据文件复制到你要的位置,如D:\ou ...

  2. mongostat用法

    mongostat是mongoDB自带的工具,用于检测mongodb的运行状态. mongostat用法 Test:Test/node-131 / # mongostat --help Usage: ...

  3. OC----面向对象

    创建一个类 comm+n 实例变量的可见度 @public,@protect@private @public  // 共有的,在类的内部和外部都可以进行访问 @protected   // 受保护的, ...

  4. JAVAWEB项目如何实现验证码

    验证码基础 一.什么是验证码及它的作用 :验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意 ...

  5. logstash插件

    codec 插件   goeip插件 input { file { path => ["/data/nginx/logs/access.log"] type =>&qu ...

  6. C#类和接口

    1.类的定义 C#使用类关键字class定义类,如: public  class MyClass { } 2.类的继承 类继承使用: public class BaseClass { } public ...

  7. docker 使用非加密registry

    配置docker成为服务,自启动 sudo systemctl enable docker.service 启动服务 sudo systemctl start docker docker默认要求我们使 ...

  8. sprintf()函数的用法

    Visual C++ sprintf()函数用法 转:http://blog.csdn.net/masikkk/article/details/5634886 在将各种类型的数据构造成字符串时,spr ...

  9. Leetcode: Sequence Reconstruction

    Check whether the original sequence org can be uniquely reconstructed from the sequences in seqs. Th ...

  10. Webform Application、ViewState

    Application(全局对象) Application对象生存期和Web应用程序生存期一样长,生存期从Web应用程序网页被访问开始,HttpApplication类对象Application被自动 ...