POJ 2983 Is the Information Reliable?(差分约束系统)
题目大意:已知关于在一条直线上的n个点的m条信息,信息分为两类,
1、准确信息:P A B X 表示A在B的北方X光年;
2、模糊信息:V A B 表示A在B的北方1光年以北。
问所给信息是否自相矛盾?
比较裸的差分约束系统。
将等式转为2个不等式即可建立差分约束系统,另需添加一个源点。
使用memset时尽量计算需要清空的大小,否则容易被多组小数据卡到TLE。
#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?(差分约束系统)相关推荐
- POJ 2983-Is the Information Reliable?(差分约束系统)
题目地址:POJ 2983 题意:有N个车站.给出一些点的精确信息和模糊信息.精确信息给出两点的位置和距离.模糊信息给出两点的位置.但距离大于等于一.试确定是否全部的信息满足条件. 思路:事实上就是让 ...
- poj 2983 Is the Information Reliable?
http://poj.org/problem?id=2983 最短路专题中的一道用到Bellman-Ford算法的题. 先简单描述题目的意思: 两个王国将开展一场星级战争,其中一个国家的防御系统被出卖 ...
- POJ 2983(差分约束系统)
POJ 2983 (1)题意: 有两种信息, P A B X表示A在B点的北边的准确距离为X V A B表示A在B的北边,但是具体的距离不确定,但是距离一定大于1. 询问是否存在一种情况使N个据点满足 ...
- POJ 2983 浅谈差分约束系统处理严格等价性问题
世界真的很大 差分约束系统,基于SPFA算法的复数不等关系判别及求值的系统 但是如果是完全等价的关系呢?或者说是混合式的等价关系? 当然是可以处理的,只不过需要恰恰转化一下,这个等价转不等算是差分约束 ...
- POJ 1364 King (差分约束系统)
题目描述有点复杂,前面讲了一大堆废话. 题目大意:对一个含n个整数的序列进行一些约束: 1.整数序列中连续的一段的和大于某个整数: 2.整数序列中连续的一段的和小于某个整数. 问满足以上约束的整数序列 ...
- 图论 —— 差分约束系统
[概述] 如果一个系统由 n 个变量 m 个约束条件组成,形成 m 个形如 的不等式,其中 ,k 是常数,则称这 m 个不等式为差分约束系统(system of difference constra ...
- 提高篇 第三部分 图论 第4章 差分约束系统
差分约束系统_我的ACM,我的梦!!!-CSDN博客_差分约束系统 差分约束系统详解 - hr_whisper - 博客园 最短路径算法:Bellman和差分约束系统_算法导论视频课程_其他视频-51 ...
- 【图论专题】差分约束系统
整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 1169. 糖果 差分约束系统.超级源点.求最值 UVA1723 Intervals 差分约束.求最值 AcWing 1170. ...
- 差分约束系统【模板】
差分约束系统:如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如 xj - xi<= bk ( i , j ∈ [1,n],k ∈ [1,m]),则称其为差分约束系统. 例如如下的 ...
最新文章
- linux中使用svn客户端
- vue状态管理存取数据_vue状态管理vuex从浅入深详细讲解
- 大数的相加 乘 余 幂
- 天天鉴宝联手网易智企,开创直播鉴定服务电商平台
- php prism,漂亮的代码语法高亮库:Prism.js
- 详谈java类和对象的生命周期
- solr java score_java-Apache Solr:按位运算来过滤搜索结果
- Java 文件上传 三种方式
- 智能家居雷声越来越大 雨点还是那么小
- 研究调查脉搏血氧饱和度仪使用Masimo RRp(R)读取儿科患者呼吸率的精度
- 虚拟机01--Mac安装Centos虚拟机
- paypal 国际版网站集成
- C/C++ 点和箭头操作符的区别
- 希望我们不要忘记喜欢过的,喜欢着的
- iOS音频播放之AudioQueue(一):播放本地音乐
- Unity3D 2021.1.1F1。更新与下载。
- 安装torchvision:ImportError:DLL load failed:找不到指定的模块
- 解决PHP报错:Call to undefined function array_column()
- C语言练习题:厘米换算英尺英寸
- 类型转换、强制类型转换
热门文章
- App Store新规即将到来 你准备好了吗?
- Android ListView 中文API
- 使用 jsfl 发布flash IDE 插件
- unity anim 组件的使用
- vue识别不了.ico后缀的图片,显示[object Module]
- 5.3.1 同步发生
- 每天Leetcode 刷题 初级算法篇-数学问题-Fizz Buzz
- Centos7安装完成找不到 ifconfig 网路设置命令
- epoll编程实例客户端_深入底层探析网络编程之多路复用器(select,poll,epoll)
- Doris之分区缓存(全面)