POJ 1364 King (差分约束系统)
题目描述有点复杂,前面讲了一大堆废话。
题目大意:对一个含n个整数的序列进行一些约束:
1、整数序列中连续的一段的和大于某个整数;
2、整数序列中连续的一段的和小于某个整数。
问满足以上约束的整数序列是否存在。
分析:首先利用前缀和进行转换,然后将>化为>=,将<化为<=,然后就基本是裸的差分约束系统了。
需要注意的是,建立的约束图可能并不是无向连通的,所以需要另外加一个结点作为源点,由于加了一个点,所以判断是否有负环时要注意,条件是某个点进队次数大于n+1
#include <stdio.h> #include <string.h> #include <queue> using namespace std; #define N 110 #define M 210 #define INF 0x3fffffff int n,m; int d[N]; int inq[N],cnt[N]; int first[N],v[M],next[M],w[M]; int e; void init() {e=0;memset(first,-1,sizeof(first)); } 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=0;i<=n;i++) d[i]=INF;d[n+1]=0;inq[n+1]=1;q.push(n+1);cnt[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]==0) inq[b]=1,q.push(b),cnt[b]++;}}}if(loop) puts("successful conspiracy");else puts("lamentable kingdom"); } int main() {int i;int a,b,c;char s[5];while(scanf("%d",&n),n){init();scanf("%d",&m);for(i=0;i<m;i++){scanf("%d%d%s%d",&a,&b,s,&c);if(s[0]=='g'){insert(a+b,a-1,-c-1);}else{insert(a-1,a+b,c-1);}}for(i=0;i<=n;i++) insert(n+1,i,0);spfa();}return 0; }
转载于:https://www.cnblogs.com/algorithms/archive/2012/07/24/2606894.html
POJ 1364 King (差分约束系统)相关推荐
- POJ 1364 King 差分约束系统
Description Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen p ...
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...
- POJ 2983(差分约束系统)
POJ 2983 (1)题意: 有两种信息, P A B X表示A在B点的北边的准确距离为X V A B表示A在B的北边,但是具体的距离不确定,但是距离一定大于1. 询问是否存在一种情况使N个据点满足 ...
- POJ 1364 King
题目大意: 国王有一个傻儿子,只会判断在给出的序列S={a1,a2,a3,a4...ai...at}中,ai+a(i+1)+a(i+2)+...+a(i+n)<ki或ai+a(i+1)+a(i+ ...
- POJ 1364:King(差分约束)
题目大意:判断是否存在一个长度为n的序列满足给出的不等关系. 分析: 将序列和转化成用两个前缀和之差来表示即可变为差分约束系统. 需要注意的是不能忘记n要加+1,因为还有一个特殊源点,自己因为n:=n ...
- POJ 2983 浅谈差分约束系统处理严格等价性问题
世界真的很大 差分约束系统,基于SPFA算法的复数不等关系判别及求值的系统 但是如果是完全等价的关系呢?或者说是混合式的等价关系? 当然是可以处理的,只不过需要恰恰转化一下,这个等价转不等算是差分约束 ...
- POJ 2983 Is the Information Reliable?(差分约束系统)
题目大意:已知关于在一条直线上的n个点的m条信息,信息分为两类, 1.准确信息:P A B X 表示A在B的北方X光年: 2.模糊信息:V A B 表示A在B的北方1光年以北. 问所给信息是否自相矛盾 ...
- 提高篇 第三部分 图论 第4章 差分约束系统
差分约束系统_我的ACM,我的梦!!!-CSDN博客_差分约束系统 差分约束系统详解 - hr_whisper - 博客园 最短路径算法:Bellman和差分约束系统_算法导论视频课程_其他视频-51 ...
- 图论 —— 差分约束系统
[概述] 如果一个系统由 n 个变量 m 个约束条件组成,形成 m 个形如 的不等式,其中 ,k 是常数,则称这 m 个不等式为差分约束系统(system of difference constra ...
最新文章
- SHELL-命令解释程序
- 洛谷 - P2764 最小路径覆盖问题(最大流+二分图最小路径覆盖+路径打印)
- 使用brew,cask和jenv在MacOSX上设置多个Java JRE / JDK
- Android开发中依赖注入的应用
- uniCloud免费云存储图床源码
- vue点击input框出现弹窗_vue组件实现弹出框点击显示隐藏效果
- python restful风格_总结python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
- Win11显卡fps很低怎么办?Win11显卡fps很低的解决方法
- strace的简单用法
- 互信息(Mutual Information)介绍
- Laravel:whereIn子查询
- 在硬盘上快速安装多个操作系统
- 【问题解决】springboot启动后一小会就自动停止,提示Process finished with exit code 0
- Cisco 防火墙Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换
- java execute、executeQuery和executeUpdate之间的区别
- 怎么把游戏隐藏到计算机,怎么将电脑游戏隐藏桌面
- Java日志框架-SLF4J入门
- 利用google maps API开发应用精选
- 图解Word2vec,读这一篇就够了!
- WAPI 产 业 联 盟成 员