题意:给定一个带权有向图,每次你可以选择一个结点v 和整数d ,把所有以v为终点的边权值减少d,把所有以v为起点的边权值增加d,最后要让所有的边权值为正,且尽量大.若无解,输出结果.若可无限大,输出结果.否则,输出最小边权的最大值. 思路:差分约束系统用最短路来解.列式子后建图,新图的边就是原图的边,权值也不变.有3种情况,要分开判断. (1)若连最小的权值1都达不到,肯定无解. (2)若可以超过所给边的最大权值,那么最小权值肯定可以继续增大. (3)接下来用二分猜答案,答案范围在[1,big]…
https://vjudge.net/problem/UVA-11478 给定一个有向图,每条边都有一个权值.每次你可以选择一个结点v和一个整数d,把所有以v为终点的边的权值减小d,把所有以v为起点的边的权值增加d,最后让所有边的权值的最小值大于零且尽量大. 该死书上翻译错了 >0不是非负 WA好几次因为这个 考虑每条边的约束,di表示i的halum量 w-dv+du>0 dv-du<w 但求解这个差分约束系统只是让这组不等式成立,最长路和最短路控制的都是单个d的最值而不是最小值最大 那…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2330 类似于题目中这种含有不等式关系,我们可以建立差分约束系统来跑最长路或最短路. 对于一个不等式$X_1-X_2>=a$我们可以看成是$X_1>=X_2+a$,把$X_1$和$X_2$看成两个点,我们可以发现这个关系跟最长路中的$dis[v]>=dis[u]+w[i]$很像,就是最长路中的点一定满足这样的关系. 所以我们就按着这个思路,先把关于点$X_1$,$X_2$和边$a$…
最短路. 把题目抽象一下:已知一张图,边上的权值表示长度.现在又有一些边,只能从其中选一条加入原图,使起点->终点的距离最小. 当加上一条边a->b,如果这条边更新了最短路,那么起点st->终点ed的最小距离=st->a  +  a->b  +b->ed 三个值的最短距离之和.于是正反求两次单元最短路.再将k条边遍历一遍就好了. 最近在改代码风格,写起来很别扭..uva又挂了,最让我不理解的是http://www.cnblogs.com/arbitrary/archiv…
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2473 题解: 首先我们可以得到的约束条件形如 xi - xj <= b[k] ,即可以转换为 j - > i连边,且权值为b[k],这样建图后我们判断是否有解,只需要用spfa跑负圈就可以了. 如果存在负圈,原差分系统定然无解. 简单证明: 我们不妨设这个环为 x1,…
题目只有一条路径会发生改变. 常见的思路,预处理出S和T的两个单源最短路,然后枚举商业线,商业线两端一定是选择到s和t的最短路. 路径输出可以在求最短路的同时保存pa数组得到一棵最短路树,也可以用dist数组检查. #include<bits/stdc++.h> using namespace std; , maxm = ; int head[maxn], to[maxm], nxt[maxm],wei[maxm],ecnt; void addEdge(int u,int v,int w) {…
Problem  UVA - 11478 - Halum Time Limit: 3000 mSec Problem Description You are given a directed graph G(V,E) with a set of vertices and edges. Each edge (i,j) that connects some vertex i to vertex j has an integer cost associated with that edge. Defin…
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34651 题意: 给定一个有向图,每一条边都有一个权值,每次你可以选择一个节点v和一个整数d,把所有以v结尾的边权值减小d,把所有以v为起点的边的权值增加d,最后要让所有边权的最小值大于0且尽量大. 题解: 最小值最大,可以用二分,这样可以得到一个差分约束系统,然后每次都用最短路跑. 代码: #include<iostream> #include<cstd…
对于一个有向带权图,进行一种操作(v,d),对以点v为终点的边的权值-d,对以点v为起点的边的权值+d.现在给出一个有向带权图,为能否经过一系列的(v,d)操作使图上的每一条边的权值为正,若能,求最小边权的最大值. 不得不说,图论与动态规划的产物实在是神奇!! 1.既然是“最小值最大”问题,容易想到二分答案. 2.抽象出数学模型.这个在<训练指南>里写得已经很详细,鄙人还是以自己的理解表达一下. 这里有两处特别值得学习的地方.一.叠加:假设每个点都对应着一个(v,d)操作,那么对于边u->…
Problem  UVA - 11090 - Going in Cycle!! Time Limit: 3000 mSec Problem Description You are given a weighted directed graph with n vertices and m edges. Each cycle in the graph has a weight, which equals to sum of its edges. There are so many cycles in…
POJ 3159 Candies (图论,差分约束系统,最短路) Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse's class a large bag of candies and had flymouse distribute them. All the kids…
题意: 给定一个有向图,每条边都有一个权值,每次你可以选择一个结点v和一个整数d,把所有以v为终点的边的权值减小d,把所有以v为起点的边的权值增加d,最后要让所有边权的最小值非负且尽量大 两个特判 1.图中存在负环 则 No Solution (构成差分约束系统的图后bk的最小值为w(u,v)- 1:所以check(1) 2.不存在最短路 则可以任意解  就是使x最大 看是否形成负环 还不形成负环 则说明 可以任意解 然后就是套最小值最大化的二分模板 #include <iostream> #…
题意: 给定n个点(点权未知)和m条信息:u的权值>=v的权值+w 求点权的极小解和极大解(无解则输出-1) 极小解即每个点的点权可能的最小值 极大解即每个点的点权可能的最大值 题解: 差分约束系统 对于val[u]>=val[v]+w 要得到极小解,v是没有受限制的,其最小值为0 而u受到v的限制,显然,val[u]的最小值就是val[v]+w 在多条件限制下,我们用v连向u边权为w的边表示每个限制条件val[u]>=val[v]+w 那么如果得到的是拓扑图,则按拓扑序求到每个点的最长…
layout: post title: 训练指南 UVA - 11374(最短路Dijkstra + 记录路径 + 模板) author: "luowentaoaa" catalog: true mathjax: true tags: - 最短路 - Dijkstra - 图论 - 训练指南 Airport Express UVA - 11374 题意 机场快线有经济线和商业线,现在分别给出经济线和商业线的的路线,现在只能坐一站商业线,其他坐经济线,问从起点到终点的最短用时是多少,还有…
UVA - 11374 Airport Express Time Limit:1000MS   Memory Limit:Unknown   64bit IO Format:%lld & %llu [Submit]  [Go Back]  [id=22966" style="color:rgb(106,57,6); text-decoration:none">Status] Description ProblemD: Airport Express In a s…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34651 [思路] 差分约束系统. 设结点u上的操作和为sum[u],则边(u,v)权值为d-sum[v]+sum[u].对于最小值最大问题我们想到二分答案,设二分值为x,则问题变为判断最小值为x时题目是否存在解.对于权值我们有不等式d-sum[v]+sum[u]>=x  =>  sum[v]<=sum[u]+(d-x),由此可以建立差分约束系统. 无解:如…
题目大意:一张n个节点的有向带边权图,每次操作能任选一个节点v个一个整数d,使以v为终点的边权值都减少d,以v为起点的边权值都增加d,求若干次操作后的最小边权值的非负最大值. 题目分析:用sum[i]表示作用在节点i上的所有d之和,则对于边a->b,操作若干次后的权值为w(a,b)+sum[a]-sum[b],假设最小边权值的最大值为x,则有sum[b]-sum[a]≤w(a,b)-x.这样的所有m条边构成一个差分约束系统.二分枚举x,求解即可. 代码如下: # include<iostrea…
2330: [SCOI2011]糖果 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 5395  Solved: 1750[Submit][Status][Discuss] Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求.幼儿园的糖果…
题目链接:http://poj.org/problem?id=3169 有n头牛站成一排 在他们之间有一些牛的关系比较好,所以彼此之间的距离不超过一定距离:也有一些关系不好的牛,希望彼此之间的距离大于等于一定距离: 关系好的有ml个(A B D)表示A牛和B牛之间的距离<=D 关系不好的有md个(A,B,D)表示A牛和B牛之间的距离>=D,求在满足条件的排列中,求出牛1和牛n的最大距离: 如果距离可以是无限大输出-2,如果不存在这样的排列输出-1: 我们用d[i]表示第i头牛的位置,因为牛是按…
介绍下差分约束系统:就是多个2未知数不等式形如(a-b<=k)的形式 问你有没有解,或者求两个未知数的最大差或者最小差 转化为最短路(或最长路) 1:求最小差的时候,不等式转化为b-a>=k的标准形式建图,求最长路 2:求最大差的时候,不等式转化为b-a<=k的标准形式建图,求最短路 然后具体的写的好的博客以供大家参考 1 http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 2 http://blog.csdn.net/…
2330: [SCOI2011]糖果 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3574  Solved: 1077[Submit][Status][Discuss] Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求.幼儿园的糖果…
给我们n座房子,房子的高度各不相同, 从最低的房子开始, 每次跳到更高的房子, 跳n-1次最能跳到最高的房子了,但是每次跳跃的距离不能超过d 将这些房子在一维的方向上重新摆放(但是保持输入时的相对位置不变) , 使得最矮的房子和最高的房子水平距离最大 将房子的坐标设为xi,  n个变量, 和2(n-1)个约束关系,  典型的差分约束系统 高度相近的两个坐标(设为xi,xj)相减  abs(xi-xj) <= d,   要想办法去掉绝对值, 那么规定一律id大的减去id小的,那么结果就是正的 又需…
题意:有n头牛,编号为1到n,对于关系好的ml头牛,al和bl之间的距离不大于dl,关系差的md头牛,ad和bd之间的距离不大于dd,求第1头牛和第n头牛之间的距离 分析:这是一道差分约束系统的题目,先来看一下查分约束系统的资料 http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 于是上述问题可以转换成最短路问题来求解,设d[i]为第1个顶点到第i个顶点的最短距离,d[al[i]]+dl[i]>=d[bl[i]],于是d[bl[…
差分约束系统 我们先来认识一下差分约束系统鸭! 差分约束系统是一种特殊的\(n\)元一次不等式组,它包含了\(n\)个变量\(x_1-x_n\)以及\(m\)个不等式(约束条件).其中每一个不等式形如\(x_i-x_j\leq c_k\),\(c_k\)是常数,\(i,j \leq n,k \leq m\). 通常来说,题目会给出这一些限制条件的模型或变式,我们需要在满足这个不等式组的前提下求解一些指定的数值. 注意到不等式\(x_i-x_j\leq c_k\)我们可以将其转换为\(x_i\le…
Problem    UVA - 11374 - Airport Express Time Limit: 1000 mSec Problem Description In a small city called Iokh, a train service, Airport-Express, takes residents to the airport more quickly than other transports. There are two types of trains in Airp…
[差分约束系统] note >>>>题目 [题目描述] 最近有一款很火的游戏,叫做八分音符酱,它和马里奥很相似,不过它的跳跃距离是由你的声音大小来控制的.不过我们现在对玩法就行一些修改:现有一共有n 个柱子,两个相邻的柱子之间的初始水平距离为1,蠢蠢的jyb 现在在最矮的柱子上,他每次只能向恰好比这个柱子高的另一个柱子跳跃,最后要跳到最高的柱子上. jyb 需要从第二个柱子跳到第一个柱子,再跳到第三个柱子.jyb 的最大声音为d,代表他能在满足 |posi-posj| + |hei…
差分约束系统一般用来解决a-b>=c的问题,有n个这样的限制条件,求出某个满足这些条件的解 可以将这个问题转化成最长路问题,即b到a的距离最少为c,而有多条b到a的路的话,我们就取最长的b到a的距离. 将限制条件转化成为一条边,然后求最长路,一般解决最长路问题,我们使用的算法是spfa 入门题   hdu1201 题意:有n个限制条件,区间a到b至少是有c个点,求满足条件的最少端点数 分析:需要满足所有条件,那么首先想到的是差分约束系统.先定义数组G,Gi为0到i有Gi个端点,那么条件a到b区间…
THE MATRIX PROBLEM Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8693    Accepted Submission(s): 2246 Problem Description You have been given a matrix CN*M, each element E of CN*M is positive…
题目链接:https://cn.vjudge.net/contest/276233#problem/C 题目大意:有n层楼,给你每个楼的高度,和这个人单次的最大跳跃距离m,两个楼之间的距离最小是1,但是楼和楼之间的距离是能够调整的,现在有一个人,要从最矮的楼开始跳,每一次跳到比当前的楼高的楼上,然后问你在将所有的楼都走一遍的基础上,从第一个楼到最后一个楼之间的最远距离是多少? 思路:使用差分约束系统的相关知识, 我们可以建立如下不等式. 1,当相邻的时候,限制posA-posB>=1,也就是po…
题目链接:https://cn.vjudge.net/contest/276233#problem/A 差分约束系统,假设当前有三个不等式 x- y <=t1 y-z<=t2 x-z<=t3 我们可以将第一个式子和第二个式子结合起来,就变成了x-z<= t1+t2 ,然后x-z的最大差值就是min(t1+t2,t3)(因为要使得最终结果都满足两个不等式) 然后求最小的过程(求差最大),就可以通过最短路的算法实现. 题目大意:给你n代表有n头牛,然后ml和md,接下来ml行,每行有三…