题目大意:已知关于在一条直线上的n个点的m条信息,信息分为两类,

1、准确信息:P A B X 表示A在B的北方X光年;

2、模糊信息:V A B 表示A在B的北方1光年以北。

问所给信息是否自相矛盾?

比较裸的差分约束系统。

将等式转为2个不等式即可建立差分约束系统,另需添加一个源点。

使用memset时尽量计算需要清空的大小,否则容易被多组小数据卡到TLE。

View Code

#include <stdio.h>
#include <string.h>
#include <queue>
using namespace std;
#define N 1010
#define M 500100
#define INF 0x3fffffff
int n,m,e;
int first[N],next[M],v[M],w[M];
int d[N],inq[N],cnt[N];
void init()
{e=0;memset(first,-1,sizeof(int)*(n+5));
}
void insert(int a,int b,int c)
{v[e]=b;w[e]=c;next[e]=first[a];first[a]=e++;
}
void spfa()
{queue<int> q;int a,b;bool loop=false;memset(inq,0,sizeof(int)*(n+5));memset(cnt,0,sizeof(int)*(n+5));for(int i=1;i<=n;i++)   d[i]=INF;d[n+1]=0;inq[n+1]=1;cnt[n+1]++;q.push(n+1);while(!q.empty()){a=q.front(),q.pop();if(cnt[a]>n+1)  {   loop=true;  break;   }inq[a]=0;for(int i=first[a];i!=-1;i=next[i]){b=v[i];if(d[b]>d[a]+w[i]){d[b]=d[a]+w[i];if(!inq[b]) inq[b]=1,q.push(b),cnt[b]++;}}}if(loop)    puts("Unreliable");else    puts("Reliable");
}
int main()
{int a,b,c;char ch;while(~scanf("%d%d",&n,&m)){init();while(m--){ch=0;while(ch!='P' && ch!='V') scanf("%c",&ch);scanf("%d%d",&a,&b);if(ch=='P'){scanf("%d",&c);insert(a,b,-c);insert(b,a,c);}else    insert(a,b,-1);}for(int i=1;i<=n;i++)   insert(n+1,i,0);spfa();}return 0;
}

转载于:https://www.cnblogs.com/algorithms/archive/2012/07/24/2607463.html

POJ 2983 Is the Information Reliable?(差分约束系统)相关推荐

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

    题目地址:POJ 2983 题意:有N个车站.给出一些点的精确信息和模糊信息.精确信息给出两点的位置和距离.模糊信息给出两点的位置.但距离大于等于一.试确定是否全部的信息满足条件. 思路:事实上就是让 ...

  2. poj 2983 Is the Information Reliable?

    http://poj.org/problem?id=2983 最短路专题中的一道用到Bellman-Ford算法的题. 先简单描述题目的意思: 两个王国将开展一场星级战争,其中一个国家的防御系统被出卖 ...

  3. POJ 2983(差分约束系统)

    POJ 2983 (1)题意: 有两种信息, P A B X表示A在B点的北边的准确距离为X V A B表示A在B的北边,但是具体的距离不确定,但是距离一定大于1. 询问是否存在一种情况使N个据点满足 ...

  4. POJ 2983 浅谈差分约束系统处理严格等价性问题

    世界真的很大 差分约束系统,基于SPFA算法的复数不等关系判别及求值的系统 但是如果是完全等价的关系呢?或者说是混合式的等价关系? 当然是可以处理的,只不过需要恰恰转化一下,这个等价转不等算是差分约束 ...

  5. POJ 1364 King (差分约束系统)

    题目描述有点复杂,前面讲了一大堆废话. 题目大意:对一个含n个整数的序列进行一些约束: 1.整数序列中连续的一段的和大于某个整数: 2.整数序列中连续的一段的和小于某个整数. 问满足以上约束的整数序列 ...

  6. 图论 —— 差分约束系统

    [概述] 如果一个系统由 n 个变量 m 个约束条件组成,形成 m 个形如  的不等式,其中 ,k 是常数,则称这 m 个不等式为差分约束系统(system of difference constra ...

  7. 提高篇 第三部分 图论 第4章 差分约束系统

    差分约束系统_我的ACM,我的梦!!!-CSDN博客_差分约束系统 差分约束系统详解 - hr_whisper - 博客园 最短路径算法:Bellman和差分约束系统_算法导论视频课程_其他视频-51 ...

  8. 【图论专题】差分约束系统

    整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 1169. 糖果 差分约束系统.超级源点.求最值 UVA1723 Intervals 差分约束.求最值 AcWing 1170. ...

  9. 差分约束系统【模板】

    差分约束系统:如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如 xj - xi<= bk ( i , j ∈ [1,n],k ∈ [1,m]),则称其为差分约束系统.  例如如下的 ...

最新文章

  1. linux中使用svn客户端
  2. vue状态管理存取数据_vue状态管理vuex从浅入深详细讲解
  3. 大数的相加 乘 余 幂
  4. 天天鉴宝联手网易智企,开创直播鉴定服务电商平台
  5. php prism,漂亮的代码语法高亮库:Prism.js
  6. 详谈java类和对象的生命周期
  7. solr java score_java-Apache Solr:按位运算来过滤搜索结果
  8. Java 文件上传 三种方式
  9. 智能家居雷声越来越大 雨点还是那么小
  10. 研究调查脉搏血氧饱和度仪使用Masimo RRp(R)读取儿科患者呼吸率的精度
  11. 虚拟机01--Mac安装Centos虚拟机
  12. paypal 国际版网站集成
  13. C/C++ 点和箭头操作符的区别
  14. 希望我们不要忘记喜欢过的,喜欢着的
  15. iOS音频播放之AudioQueue(一):播放本地音乐
  16. Unity3D 2021.1.1F1。更新与下载。
  17. 安装torchvision:ImportError:DLL load failed:找不到指定的模块
  18. 解决PHP报错:Call to undefined function array_column()
  19. C语言练习题:厘米换算英尺英寸
  20. 类型转换、强制类型转换

热门文章

  1. App Store新规即将到来 你准备好了吗?
  2. Android ListView 中文API
  3. 使用 jsfl 发布flash IDE 插件
  4. unity anim 组件的使用
  5. vue识别不了.ico后缀的图片,显示[object Module]
  6. 5.3.1 同步发生
  7. 每天Leetcode 刷题 初级算法篇-数学问题-Fizz Buzz
  8. Centos7安装完成找不到 ifconfig 网路设置命令
  9. epoll编程实例客户端_深入底层探析网络编程之多路复用器(select,poll,epoll)
  10. Doris之分区缓存(全面)