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+2)+...+a(i+n)>ki,其中测试数据中给出的gt是'>',lt是'<'.有时候这个傻儿子连这也会判断错,当他错了时他不能说自己错(因为是国王的儿子嘛),所以他需要构造一个为序列S1来替代序列S 。问有没有这样一个序列。
此题我是用SPFA实现的。用SPFA实现要注意的问题都是些老问题:
1、图可能不连通,需要提前把所有点加入队列。
2、要判断是否有环(最长路的正环和最短路的负环)。
下面是代码:
#include <stdio.h>
#include <queue>
using namespace std;
#define inf 0x7fffffff
struct node
{int to,w,next;
} edge[1005];
int dis[205],head[205],cnt,c[205],n,m;
bool vis[205];
void init()
{cnt=0;for(int i=0; i<205; i++){head[i]=-1;dis[i]=0;}
}
void add(int u,int v,int w)
{edge[cnt].to = v;edge[cnt].w = w;edge[cnt].next = head[u];head[u] = cnt;cnt++;
}
bool spfa()
{queue <int>q;int i;for(i=0; i<=n; i++){q.push(i);vis[i]=true;c[i]=1;}while(!q.empty()){int p,t=q.front();q.pop();p=head[t];vis[t]=false;while(p!=-1){if(dis[edge[p].to]>dis[t]+edge[p].w){dis[edge[p].to]=dis[t]+edge[p].w;if(!vis[edge[p].to]){vis[edge[p].to]=true;q.push(edge[p].to);c[edge[p].to]++;if(c[edge[p].to] > 24){return false;}}}p=edge[p].next;}}return true;
}
int main()
{while(scanf("%d",&n),n){scanf("%d",&m);init();int i,j,n,a,s,e,w;char c[5];for(i=0; i<m; i++){scanf("%d%d%s%d",&s,&e,c,&w);if(c[0]=='g'){add(s+e,s-1,-w-1);}else{add(s-1,s+e,w-1);}}if(!spfa()){puts("successful conspiracy");}else{puts("lamentable kingdom");}}return 0;
}
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 (差分约束系统)
题目描述有点复杂,前面讲了一大堆废话. 题目大意:对一个含n个整数的序列进行一些约束: 1.整数序列中连续的一段的和大于某个整数: 2.整数序列中连续的一段的和小于某个整数. 问满足以上约束的整数序列 ...
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...
- 【POJ - 1364】King(差分约束判无解)
题干: Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen prayed: ` ...
- POJ 1364:King(差分约束)
题目大意:判断是否存在一个长度为n的序列满足给出的不等关系. 分析: 将序列和转化成用两个前缀和之差来表示即可变为差分约束系统. 需要注意的是不能忘记n要加+1,因为还有一个特殊源点,自己因为n:=n ...
- 差分约束 1:pku 1201 Intervals 2:pku 1364 King 3:hdu 1534
一个很好的差分约束总结:http://972169909-qq-com.iteye.com/blog/1185527 第一: 感觉难点在于建图 第二: ①:对于差分不等式,a - b <= ...
- poj 1904 King's Quest
King's Quest 题意:有N个王子和N个妹子;(1 <= N <= 2000)第i个王子喜欢Ki个妹子:(详见sample)题给一个完美匹配,即每一个王子和喜欢的一个妹子结婚:问每 ...
- POJ 1904 King's Quest(强连通分量)
题目链接 Description Once upon a time there lived a king and he had N sons. And there were N beautiful g ...
- poj 1904 King's Quest 强连通分量+匹配
========== 题目链接King's Quest ============ 题解:通过原有的完美匹配,反向建边,在同一个强连通分量里面的王子和公主可以匹配,而不影响其他王子的结婚对象. //#i ...
最新文章
- ATT与Intel汇编语言的比较
- jquery extend函数
- Winforn中设置ZedGraoh的GraphPane恢复到初始比例大小
- [ROBOT] python library 如何能获取到ROBOT框架里面的全局变量,例如${OUTPUT DIR}等
- 【多态】多态的向下转型
- java代码创建jar_Java 创建ZIP和JAR文件
- html 通用ui css图标,ui-icon.html
- weblogic启动后,抛出大量的java.lang.ArrayIndexOutOfBoundsException异常
- IDEA整合Spring Boot项目访问jsp文件
- 4556: [Tjoi2016Heoi2016]字符串
- xposed微信模块源代码
- Matlab 实现串口助手
- 使用cntv(原cctvbox-中国网络电视台)下载视频
- java阳历转阴历_java,阳历转阴历(农历)
- EMC共模干扰与差模干扰是什么?怎么解决?
- paper:DeepAR: Probabilistic forecasting with autoregressive recurrent networks DeepAR模型
- 加速网站访问的一些实践体会
- 公司项目中的biz层和manager层是干啥的
- web应用 远程调用佳博打印机进行条码打印(详细教程)
- 判断用户输入的数字是奇数还是偶数