POJ_2983_Is the Information Reliable? _差分约束
来源:互联网 发布:跳舞毯安装软件 编辑:程序博客网 时间:2024/06/09 22:27
Is the Information Reliable?
Time Limit: 3000MS Memory Limit: 131072K
Total Submissions: 12466 Accepted: 3924
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
由 V u v 得到 v - u >= 1 也就是 u - v <= -1 ;
Time Limit: 3000MS Memory Limit: 131072K
Total Submissions: 12466 Accepted: 3924
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
题意:
P u v w 表示 v在u以北w公里。
V u v 表示 v在u北边,最少1公里,问所有条件可不可以全部满足。
思路:
由 V u v 得到 v - u >= 1 也就是 u - v <= -1 ;
建图,使用最短路,判断是否会有负环。
#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#define inf 0x3f3f3f3fusing namespace std;struct Node{int v;int w;int next;}s[210000];int head[1010];int dist[1010];bool vis[1010];int n,m,num;int coun[1010];void add_edge(int a,int b,int c){s[num].v = b;s[num].w = c;s[num].next = head[a];head[a] = num++;}int SPFA(){queue<int> Q;memset(dist,inf,sizeof(dist));memset(vis,false,sizeof(vis));memset(coun,0,sizeof(coun));dist[0] = 0;vis[0] = true;coun[0] = 1; Q.push(0);while(!Q.empty()){int u = Q.front();Q.pop();vis[u] = false;coun[u]++;if(coun[u]>n){return 0;}for(int i=head[u];i!=-1;i=s[i].next){int v = s[i].v;int w = s[i].w;if(dist[v]>dist[u]+w){dist[v] = dist[u] + w;if(!vis[v]){vis[v] = true;Q.push(v);}}}}return 1;}int main(){while(scanf("%d%d",&n,&m)!=EOF){num = 0;int i,j;char c[2];int u,v,w;memset(head,-1,sizeof(head));while(m--){scanf("%s",c);if(c[0]=='P'){scanf("%d%d%d",&u,&v,&w);add_edge(v,u,w);add_edge(u,v,-w);}else{scanf("%d%d",&u,&v);add_edge(u,v,-1);}}for(i=1;i<=n;i++){add_edge(0,i,0); //找一个超级源点,给所有点都有关系,权值为0 }if(SPFA()){printf("Reliable\n");}else{printf("Unreliable\n");}}return 0;}
0 0
- POJ_2983_Is the Information Reliable? _差分约束
- pku 2983 Is the Information Reliable?(差分约束系统)
- POJ 2983 Is the Information Reliable(差分约束系统)
- POJ--2983[Is the Information Reliable?] 差分约束
- poj 2983 差分约束Is the Information Reliable?
- poj2983(差分约束系统)Is the Information Reliable?
- poj 2983 Is the Information Reliable?(差分约束)
- POJ 2983 Is the Information Reliable? 依旧差分约束
- POJ 2983 Is the Information Reliable?(差分约束系统)
- poj 2983 Is the Information Reliable? 差分约束
- Is the Information Reliable?(差分约束)
- POJ-2983-Is the Information Reliable?(差分约束)
- poj2983--Is the Information Reliable?(差分约束)
- poj 2983 Is the Information Reliable? 差分约束
- POJ 2983 Is the Information Reliable? 差分约束
- POJ 2983-Is the Information Reliable?(差分约束系统)
- POJ 2983 Is the Information Reliable? 差分约束系统
- poj-2983 Is the Information Reliable? 差分约束+判负环
- mysql视图
- Non Thread Safe和Thread Safe的版本区别
- UNPv1第五章:TCP客户服务器程序实例
- 关于C++中的常量成员函数
- req.getRequestDispatcher和resp.sendRedirect的区别
- POJ_2983_Is the Information Reliable? _差分约束
- Linux 0.11几个重要的切换
- Java 正则表达式 量词 --- 三种匹配模式【贪婪型、勉强型、占有型】
- 类的默认的构造函数
- keytool--生成证书与Tomcat SSL配置
- 线程池的使用
- Android发布项目到JCenter
- maven依赖关系中Scope的作用
- JMeter实现对WCF性能测试