poj 1364 King[差分约束]
来源:互联网 发布:安卓手机网络修复工具 编辑:程序博客网 时间:2024/06/08 07:44
题目大意:有一个序列。给定一些约束条件,格式为si、ni、oi、ki,意思是序列中第si项到第si+ni项的和>(或<)ki,oi表示>(用"gt”表示)或<(用"lt"表示)。问这样的序列是否存在。存在输出"lamentable kingdomi",否则输出"successful conspiracy"。
思路:简单的差分约束,就是题目描述有点不太好懂,还有就是,题目给出的是>,<,要把它转化成>=,<=。需要注意,虽然序列长度为n,但是建图的时候用来第0项,相当于序列长度变为了n+1,所以bellman算法要循环n次!
#include<queue>#include<cstdio>#include<vector>#include<string>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define M 110#define INF 0x3f3f3f3fstruct node{ int u, v, w;}edge[M];int n, m;int mx, mn;int dist[M];void bellman_ford(){ memset(dist, 0, sizeof(dist)); for (int i = 1; i <= n; i++)//循环n次! { for (int i = 0; i <= m; i++) { int a = edge[i].u, b = edge[i].v; if (dist[a] < INF && dist[b] > dist[a] + edge[i].w) { dist[b] = dist[a] + edge[i].w; } } }}int main(){ while (cin >> n, n) { cin >> m; //mx = -INF; mn = INF; for (int i = 1; i <= m; i++) { int a, b, k; string c; cin >> a >> b >> c >> k; if (c == "gt") { k++; edge[i].u = a + b; edge[i].v = a - 1; edge[i].w = -k; } else { k--; edge[i].u = a - 1; edge[i].v = a + b; edge[i].w = k; } } bellman_ford(); int flog = 0; for (int i = 1; i <= m; i++) { int a = edge[i].u, b = edge[i].v; if (dist[a] < INF && dist[b] > dist[a] + edge[i].w) { flog = 1; break; } } if (flog) { printf("successful conspiracy\n"); } else printf("lamentable kingdom\n"); } return 0;}
0 0
- POJ 1364 King(差分约束系统)
- poj 1364 King (差分约束系统)
- poj 1364 KING (差分约束系统)
- POJ 1364 King 差分约束 Bellman_Ford
- POJ 1364 King 差分约束 SPFA
- poj 1364 King 差分约束
- poj 1364 King 差分约束
- POJ 1364 King (差分约束)
- POJ 1364 King 差分约束系统
- poj 1364 King (差分约束)
- poj-1364 King 差分约束
- POJ 1364 King(差分约束系统)
- POJ 1364 King ( 差分约束系统 )
- POJ 1364-King(差分约束系统)
- poj 1364 King(差分约束)(中等)
- POJ - 1364 King (差分约束系统)
- POJ 1364 - King(差分约束)
- poj 1364 king (差分约束)
- vim 基本操作文档
- (OK) rdesktop - How to Use Remote Desktop (rdesktop) in Redhat/Fedora/CentOS
- HashMap与ConCurrentHashMap
- Linux下可执行文件的格式
- Java四舍五入取巧方式
- poj 1364 King[差分约束]
- 23种设计模式(2):工厂方法模式
- Java之详解坦克大战游戏(五)
- 169. Majority Element
- 设计模式之单例模式
- Spring MVC 关键点 理解
- 常用Bracket插件
- Linux终端命令汇总
- JAVA面向对象-----成员内部类访问细节