#define _CRT_SECURE_NO_WARNINGS
/*
4 2 1
1 3 10 2 4 20
2 3 3
*/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
using namespace std; const int maxn = + ;
const int INF = ;
//输入
int N, ML, MD;
int AL[maxn], BL[maxn], DL[maxn];
int AD[maxn], BD[maxn], DD[maxn]; int d[maxn]; void solve()
{
fill(d, d + N, INF);
d[] = ; //用Bellman-Ford算法计算d
for (int k = ; k < N; k++) {
//从i+1到i的权值为0
for (int i = ; i + < N; i++) {
if (d[i + ] < INF) d[i] = min(d[i], d[i + ]);
}
//从AL到BL的权值为DL
for (int i = ; i < ML; i++) {
if (d[AL[i] - ] < INF) {
d[BL[i] - ] = min(d[BL[i] - ], d[AL[i] - ] + DL[i]);
}
}
//从BD到AD的权值为-DD
for (int i = ; i < MD; i++) {
if (d[BD[i] - ] < INF) {
d[AD[i] - ] = min(d[AD[i] - ], d[BD[i] - ] - DD[i]);
}
}
}
int res = d[N - ];
if (d[] < ) {
//存在负边无解
res = -;
}
else if (res == INF) {
res = -;
}
printf("%d\n", res);
} void input()
{
cin >> N >> ML >> MD;
for (int i = ; i < ML; i++) {
cin >> AL[i] >> BL[i] >> DL[i];
}
for (int i = ; i < MD; i++) {
cin >> AD[i] >> BD[i] >> DD[i];
}
} int main()
{
input();
solve();
return ;
}

Bellman-Ford算法:POJ No.3169 Layout 差分约束的更多相关文章

  1. POJ 3169 Layout (差分约束)

    题意:给定一些母牛,要求一个排列,有的母牛距离不能超过w,有的距离不能小于w,问你第一个和第n个最远距离是多少. 析:以前只是听说过个算法,从来没用过,差分约束. 对于第 i 个母牛和第 i+1 个, ...

  2. POJ 3169 Layout(差分约束+链式前向星+SPFA)

    描述 Like everyone else, cows like to stand close to their friends when queuing for feed. FJ has N (2 ...

  3. POJ 3169 Layout(差分约束啊)

    题目链接:http://poj.org/problem? id=3169 Description Like everyone else, cows like to stand close to the ...

  4. poj 3169 Layout 差分约束模板题

    Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6415   Accepted: 3098 Descriptio ...

  5. POJ 3169 Layout(差分约束 线性差分约束)

    题意: 有N头牛, 有以下关系: (1)A牛与B牛相距不能大于k (2)A牛与B牛相距不能小于k (3)第i+1头牛必须在第i头牛前面 给出若干对关系(1),(2) 求出第N头牛与第一头牛的最长可能距 ...

  6. Bellman—Ford算法思想

    ---恢复内容开始--- Bellman—Ford算法能在更普遍的情况下(存在负权边)解决单源点最短路径问题.对于给定的带权(有向或无向)图G=(V,E),其源点为s,加权函数w是边集E的映射.对图G ...

  7. Bellman - Ford 算法解决最短路径问题

    Bellman - Ford 算法: 一:基本算法 对于单源最短路径问题,上一篇文章中介绍了 Dijkstra 算法,但是由于 Dijkstra 算法局限于解决非负权的最短路径问题,对于带负权的图就力 ...

  8. ShortestPath:Layout(POJ 3169)(差分约束的应用)

                布局 题目大意:有N头牛,编号1-N,按编号排成一排准备吃东西,有些牛的关系比较好,所以希望他们不超过一定的距离,也有一些牛的关系很不好,所以希望彼此之间要满足某个关系,牛可以 ...

  9. poj Layout 差分约束+SPFA

    题目链接:http://poj.org/problem?id=3169 很好的差分约束入门题目,自己刚看时学呢 代码: #include<iostream> #include<cst ...

随机推荐

  1. 设计模式之工厂模式(c++)

    问题描述 在面向对象系统设计中经常可以遇到以下的两类问题:1)为了提高内聚(Cohesion)和松耦合(Coupling),我们经常会抽象出一些类的公共接口以形成抽象基类或者接口.这样我们可以通过声明 ...

  2. 第八周PSP 新折线图和饼图 个人时间管理

    1.PSP DATE START-TIME END-TIME EVENT           DELTA TYPE 4.18 15.36 16.10 读构建执法 走神5min         29mi ...

  3. php常用扩展安装

    ####memcache wget http://pecl.php.net/get/memcache-2.2.7.tgztar xf memcache-2.2.7.tgz cd memcache-2. ...

  4. 借鉴 学习 DELPHI 通用函数 哈哈

    [转]关于Delphi通用涵数 http://m.blog.csdn.net/blog/dragonjiang5460/1196927 2006-9-8阅读2016 评论0 DELPHI程序注册码设计 ...

  5. 关于RabbitMQ Queue Argument的简介

    1.Message TTL message在队列queue中可以存活多长时间,以毫秒为单位:发布的消息在queue时间超过了你设定的时间就会被删除掉. channel.queueDeclare(&qu ...

  6. 一本通1609【例 4】Cats Transport

    1609:[例 4]Cats Transport 时间限制: 1000 ms         内存限制: 524288 KB sol:非常偷懒的截图了事 注意:只能猫等人,不能人等猫 对于每只猫,我们 ...

  7. Codeforces Round #411 div 2 D. Minimum number of steps

    D. Minimum number of steps time limit per test 1 second memory limit per test 256 megabytes input st ...

  8. MT【216】韦达定理

    设$n$为正整数,$a_1,a_2,\cdots,a_n;b_1,b_2,\cdots,b_n;A,B$都是正数, 满足$a_i\le b_i,a_i\le A,i=1,2,\cdots,n$ 且$\ ...

  9. cf1000C Covered Points Count (差分+map)

    考虑如果数字范围没有这么大的话,直接做一个差分数组就可以了 但现在变大了 所以要用一个map来维护 #include<bits/stdc++.h> #define pa pair<i ...

  10. Java核心技术-并发

    多任务(multitasking):在同一时刻运行多个程序的能力. 并发执行的进程数目并不是由CPU数目制约的.操作系统将CPU的时间片分配给每一个进程,给人并发处理的感觉. 多线程程序在较低的层次上 ...