POJ 1364 King
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的更多相关文章
- poj 1364 King(差分约束)
题目:http://poj.org/problem?id=1364 #include <iostream> #include <cstdio> #include <cst ...
- POJ 1364 King (UVA 515) 差分约束
http://poj.org/problem?id=1364 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemi ...
- poj 1364 King(差分约束)
题意(真坑):傻国王只会求和,以及比较大小.阴谋家们想推翻他,于是想坑他,上交了一串长度为n的序列a[1],a[2]...a[n],国王作出m条形如(a[si]+a[si+1]+...+a[si+ni ...
- poj 1364 King(线性差分约束+超级源点+spfa判负环)
King Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14791 Accepted: 5226 Description ...
- POJ 1364 King (差分约束)
King Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8660 Accepted: 3263 Description ...
- 图论--差分约束--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 --差分约束第一题
题意:求给定的一组不等式是否有解,不等式要么是: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个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...
- 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 ...
随机推荐
- Ajax效果
Ajax的效果就是不通过网页的跳转,就可以通过请求,就可以自动加载某个网页,在注册帐号时,经常 不通过网页跳转从数据库中查看是否有相同数据的出现,确认是否能够正确注册 下面是用其他方式实现ajax的效 ...
- SSM成功了
- Java多线程--同步函数
/*需求:银行有一个金库有两个储户分别存300元 每次存100元,存3次 目的:该程序是否有安全问题,如果有,如何解决? 如何找问题(很重要)1.明确哪些代码是多线程运行代码2.明确共享数据3.明确多 ...
- eNSP
L2交换机 sysvlan 200q interface Vlanif 200ip address 192.168.0.1 24dis thisq interface Ethernet 0/0/1po ...
- ajax详解,以及异步JSOP的实现
这里我使用的是jquery的ajax方法 包括三个方法 : get() , post(), getJson() get() 和post()的格式我就使用一下格式,很方便: $.ajax({ u ...
- WIX Custom Action (immediate, deffered, rollback)
Following content is directly reprinted from From MSI to WiX, Part 19 - The Art of Custom Action, Pa ...
- n个骰子的点数
把n个骰子扔在地上,所有骰子朝上的一面的点数之和为s.输入n,打印出s的所有可能的值和出现的概率. 解法一:基于递归求骰子点数. /////////////////基于递归求骰子点数///////// ...
- 排序算法THREE:归并排序MergeSort
/** *归并排序思路:分治法思想 O(nlogn) * 把数组一分为二,二分为四 * 四和为二,二和为一 * */ /** * 归并排序主方法 *@params 待排序的数组 *@params 初始 ...
- 代C语言上机实践
这已经是开学第十二周了,个人感觉严老师教的这批学生效果不是很好,有的竟然毫不知道main函数前边的 int是做什么的.只知按照书本上给的样例程序一个字一个字的敲到编译器中,然后点击运行.有错误也不知道 ...
- scroll
var fScrollTopHeight = function(){ return document.documentElement&&document.documentElement ...