#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. Java用JSoup组件提取asp.net webform开发网页的viewstate相关相关参数

    /** * 从页面中提取特定input的的Value * @param formparams * @param document * @param elementId */ private void ...

  2. Linux shell 菜鸟学习笔记....

    20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...

  3. centos7 tar.xz格式文件的解压方法

    现在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式. 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案 ...

  4. 基于C#.NET的高端智能化网络爬虫(一)(反爬虫哥必看)

    前两天朋友发给我了一篇文章,是携程网反爬虫组的技术经理写的,大概讲的是如何用他的超高智商通过(挑衅.怜悯.嘲讽.猥琐)的方式来完美碾压爬虫开发者.今天我就先带大家开发一个最简单低端的爬虫,突破携程网超 ...

  5. Java微信二次开发(九)

    多媒体文件上传与下载 第一步:找到包com.wtz.vo,新建类WeixinMedia.java package com.wtz.vo; /** * @author wangtianze QQ:864 ...

  6. js Location

    window.location用來返回頁面的地址,并把頁面重定向新的頁面: location.pathname:返回當前的頁面地址和文件名 location.hostname:主機名 location ...

  7. LAMP平台部署

    LAMP平台的概述 LAMP环境脚本部署:https://github.com/spdir/ShellScripts/tree/master/lamp LAMP的介绍:百度百科 LAMP平台的构成组件 ...

  8. linux上搭建nginx

    安装包:(按顺序执行过去即可,重复无所谓)c++编译环境 yum install gcc-c++ 安装pcre yum -y install pcre-devel 安装openssl yum -y i ...

  9. 【BZOJ3821/UOJ46】玄学(二进制分组,线段树)

    [BZOJ3821/UOJ46]玄学(二进制分组,线段树) 题面 BZOJ UOJ 题解 呜,很好的题目啊QwQ. 离线做法大概可以线段树分治,或者直接点记录左右两次操作时的结果,两个除一下就可以直接 ...

  10. 移除SharePoint2013里的NoteBook笔记本链接

    cls $featureID = (Get-SPFeature | ?{ ($_.DisplayName -eq "SiteNotebook") -and ( $_.Scope - ...