http://poj.org/problem?id=1364

题意 :给出一个序列a1,a2,a3,a4.....ai,......at ;然后给你一个不等式使得ai+a(i+1)+a(i+2)+...+a(i+n)<ki或者是ai+a(i+1)+a(i+2)+...+a(i+n)>ki,样例的意思是:gt是大于的意思,lt是小于的意思,第一个数字 i 是序列从ai 开始,第2个数字n是从ai 开始加加到an,然后最后那个数就是不等式的右边。问你所有不等式是否都满足条件,若满足输出lamentable kingdom,不满足输出successful conspiracy,

1 2 gt 0
a1+a2+a3>0
2 2 lt 2
a2+a3+a4<2

思路 :好吧,一个赤裸裸的差分。。。。转换一下首先设Si=a1+a2+a3+...+ai那么根据样例可以得出S3-S0>0---->S0-S3<=-1和S4-S1<2---->S4-S1<=1,因为差分约束的条件是小于等于,所以我们将ki-1可以得到一个等于号那么通式可以表示为

a  b  gt  c
S[a-1]-s[a+b]<=-ki-1
a  b  lt  c
S[a+b]-S[a-1]<=ki-1那么根据差分约束建图,加入这些有向边

gt:  <a+b,a-1>=-ki-1
lt:  <a-1,a+b>=ki-1
再根据bellman_ford判断是否有无负环即可
若出现负环了则这个序列不满足所有的不等式

#include <iostream>
#include <stdio.h>
#include <string.h> using namespace std ; struct node
{
int u,v,w ;
} edge[] ;
int n,m,dis[] ; int bellman()
{
memset(dis,,sizeof(dis)) ;
for(int i = ; i <= n ; i++)
for(int j = ; j < m ; j++)
if(dis[edge[j].u]+edge[j].w < dis[edge[j].v])
dis[edge[j].v] = dis[edge[j].u]+edge[j].w ;
for(int j = ; j < m ; j++)
{
if(dis[edge[j].u]+edge[j].w < dis[edge[j].v])
return ;
}
return ;
}
int main()
{
while(~scanf("%d",&n) && n)
{
scanf("%d",&m) ;
int a,b,c ;
char sh[] ;
for(int i = ; i < m ; i++)
{
scanf("%d %d %s %d",&a,&b,sh,&c) ;
if(sh[] == 'g')
{
edge[i].u = a+b ;
edge[i].v = a- ;
edge[i].w = -c- ;
}
else {
edge[i].u = a- ;
edge[i].v = a+b ;
edge[i].w = c- ;
}
}
if(!bellman())
printf("successful conspiracy\n") ;
else
printf("lamentable kingdom\n") ;
}
return ;
}

POJ 1364 King的更多相关文章

  1. poj 1364 King(差分约束)

    题目:http://poj.org/problem?id=1364 #include <iostream> #include <cstdio> #include <cst ...

  2. POJ 1364 King (UVA 515) 差分约束

    http://poj.org/problem?id=1364 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemi ...

  3. poj 1364 King(差分约束)

    题意(真坑):傻国王只会求和,以及比较大小.阴谋家们想推翻他,于是想坑他,上交了一串长度为n的序列a[1],a[2]...a[n],国王作出m条形如(a[si]+a[si+1]+...+a[si+ni ...

  4. poj 1364 King(线性差分约束+超级源点+spfa判负环)

    King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14791   Accepted: 5226 Description ...

  5. POJ 1364 King (差分约束)

    King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8660   Accepted: 3263 Description ...

  6. 图论--差分约束--POJ 1364 King

    Description Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen p ...

  7. POJ 1364 King --差分约束第一题

    题意:求给定的一组不等式是否有解,不等式要么是:SUM(Xi) (a<=i<=b) > k (1) 要么是 SUM(Xi) (a<=i<=b) < k (2) 分析 ...

  8. [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]

    题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...

  9. POJ 1364 / HDU 3666 【差分约束-SPFA】

    POJ 1364 题解:最短路式子:d[v]<=d[u]+w 式子1:sum[a+b+1]−sum[a]>c      —      sum[a]<=sum[a+b+1]−c−1  ...

随机推荐

  1. 关于post请求参数的大小限制的说明

    最近做一个上传图片的项目,前端使用jquery 的post提交,然后把上传的图片的base64码 传到后台,发现几KB或者几十KB的图片,都可以传到后台,但是在上传几M 的图片在后台接收的时候,发现传 ...

  2. Java事务处理总结

    http://lavasoft.blog.51cto.com/62575/53815/ 一.什么是Java事务   通常的观念认为,事务仅与数据库相关.   事务必须服从ISO/IEC所制定的ACID ...

  3. php 文件缓存

    http://www.oschina.net/code/snippet_162279_6098 <?php class cache {       private static $_instan ...

  4. 【html】【7】基础布局初探

    当了解了上面的文章有一定基础后,开始尝试初步基础布局,可能不美观,但是要开始有布局框架思想 基础代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  5. OC4_NSString操作

    // // main.m // OC4_NSString操作 // // Created by zhangxueming on 15/6/10. // Copyright (c) 2015年 zhan ...

  6. 13_ServletContext对象

    [简介] ServletContext即Servlet上下文对象,该对象表示当前的web应用环境信息,一个Web应用只会创建一个ServletContext对象. Web容器启动的时候,它会为每个We ...

  7. Python快速入门学习笔记(二)

    注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...

  8. mysql大数据高并发处理

    一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...

  9. 支付宝api教程,支付宝根据交易号自动充值

    最近公司要用php做一个网站支付宝自动充值的功能,具体就是客户把钱直接转到公司的支付宝账号里,然后在我们网站上填写上交易号,我们网站程序自动获取交易信息,自动给网站的账户充值. 我的具体想法就是利用支 ...

  10. Linux C 程序 两变量值交换(FIVE)

    example:1.运算符: #include<stdio.h> int main(){ int a , b , c ,d ; a = ; b = a++;//先赋值给b,a再自增 c = ...