poj 1364 查分约束
#include<stdio.h>
#include<iostream>
#include<stack>
#include<string.h>
using namespace std;
#define inf 999999999
#define N 300
struct node {
int u,v,w,next;
}bian[N*10];
int yong,n,head[N];
void addedge(int u,int v,int w) {
bian[yong].v=v;
bian[yong].w=w;
bian[yong].next=head[u];
head[u]=yong++;
}
int bellman() {
int dis[N],visit[N],count[N];
int cur,i;
for(i=0;i<=n;i++)
addedge(n+1,i,0);
for(i=0;i<=n+1;i++)
dis[i]=inf;
memset(visit,0,sizeof(visit));
memset(count,0,sizeof(count));
stack<int>q;
dis[n+1]=0;
q.push(n+1);
while(!q.empty()) {
cur=q.top();
q.pop();
visit[cur]=0;
for(i=head[cur];i!=-1;i=bian[i].next)
if(dis[bian[i].v]>dis[cur]+bian[i].w) {
dis[bian[i].v]=dis[cur]+bian[i].w;
if(!visit[bian[i].v]) {
visit[bian[i].v]=1;
if(++count[bian[i].v]>n)
return 0;
q.push(bian[i].v);
}
}
}
return 1;
}
int main() {
int i,j,k,m;
char s[30];
while(scanf("%d",&n),n) {
scanf("%d",&m);
yong=0;
memset(head,-1,sizeof(head));
while(m--) {
scanf("%d%d%s%d",&i,&j,s,&k);
if(s[0]=='g')
addedge(i+j,i-1,-k-1);
if(s[0]=='l')
addedge(i-1,i+j,k-1);
}
if(bellman())
printf("lamentable kingdom\n");
else
printf("successful conspiracy\n");
}
return 0;
}
poj 1364 查分约束的更多相关文章
- Integer Intervals POJ - 1716_查分约束_
Code: #include<cstdio> #include<queue> #include<algorithm> using namespace std; co ...
- poj 1201 Interval (查分约束)
/* 数组开大保平安. 查分约束: 输入的时候维护st和end 设每个点取元素di个 维护元素个数前缀和s Sbi-Sai-1>=ci 即:建立一条从ai-1到bi的边 权值为ci 表示ai到b ...
- 洛谷P1993 小 K 的农场(查分约束)
/* 加深一下对查分约束的理解 建图的时候为了保证所有点联通 虚拟一个点 它与所有点相连 权值为0 然后跑SPFA判负环 这题好像要写dfs的SPFA 要不超时 比较懒 改了改重复进队的条件~ */ ...
- codevs 1242 布局(查分约束+SPFA)
/* 查分约束. 给出的约束既有>= 又有<= 这时统一化成一种 Sb-Sa>=x 建边 a到b 权值为x Sb-Sa<=y => Sa-Sb>=-y 建边 b到a ...
- poj 1364 King(差分约束)
题目:http://poj.org/problem?id=1364 #include <iostream> #include <cstdio> #include <cst ...
- BZOJ2330 糖果题解 查分约束
BZOJ 2330 糖果题解 差分约束系统 + SPFA 题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2330 Description ...
- POJ 1364 King --差分约束第一题
题意:求给定的一组不等式是否有解,不等式要么是:SUM(Xi) (a<=i<=b) > k (1) 要么是 SUM(Xi) (a<=i<=b) < k (2) 分析 ...
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...
- 最短路&查分约束
[HDU] 1548 A strange lift 根蒂根基最短路(或bfs)★ 2544 最短路 根蒂根基最短路★ 3790 最短路径题目 根蒂根基最短路★ 2066 一小我的观光 根蒂根基最短路( ...
随机推荐
- weiphp插件开发注意
插件命名要规范,插件名文件名,控制器名,模型名要以大写开头.不然的话会有惊喜!╮(╯▽╰)╭
- Y-C
1.asp.net服务控件生命周期 11个生命阶段 (1)初始化: 初始化在传入Web请求生命周期内所需的设置,.跟踪视图状态.页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开 ...
- 【js】callback时代的变更
最近团队开始越来越多的使用es7标准的async/await,从最开始的promise到后面的generator,再到现在async,对于异步,每个时期都有着其特有的解决方案,今天笔者就以自己的接触为 ...
- C. Coin Troubles 有依赖的背包 + 完全背包变形
http://codeforces.com/problemset/problem/283/C 一开始的时候,看着样例不懂,为什么5 * a1 + a3不行呢?也是17啊 原来是,题目要求硬币数目a3 ...
- connection failed to http://nssa-sensor3:11000/oozie/?user.name=oozie(<urlopen erroer Errno 111] Connection refused>)解决办法(图文详解)
不多说,直接上干货! 解决办法 Copy/Paste oozie.services property tag set from oozie-default.xml to oozie-site.xml. ...
- 几个不同的tab切换示例
上一篇<论tab切换的几种实现方法>中讲了tab切换的4种不同实现原理,那么,现在到理论联系实际的时候了,下面就写几个实例. 一.仿”中国人民大学“官网的tab切换,背景是图片,效果图如下 ...
- EasyUI系列学习(五)-Resizable(调整大小)
一.创建组件 1.使用标签创建可变大小的窗口 <div id="rBox" class="easyui-resizable" style="wi ...
- (三)Mybatis总结之动态sql
动态sql 为何需要动态sql?因为简单的sql语句已经不能满足复杂的业务需求 动态sql相当于sql语句拼接 1.if语句 if语句:判断,如果执行多条件查询,如果中间某个条件变量为空,就跳过当前判 ...
- 2017-12-04HTML布局_div布局
HTML布局_div布局 <!doctpye> <html> <head> <meta charset = 'utf-8'> <title> ...
- JavaScript(八)日期对象
Date对象 1.创建方式 var now = new Date(); //现在返回的直接就是 当前的时间 不需要进行换算了 返回格式 (星期 月 日 年 时 分 秒 时区) 2.日期的格式化方 ...