差分约束系统
ZigZagK
一个蒟蒻。
展开
-
【差分约束系统】POJ3159[Candies]题解
题目概述有n个人和m个要求,每个要求格式形如:A认为B拿到的糖果数不应该比他多C。问最大的糖果数差距。解题报告这道题就是最经典的差分约束系统,由于要求差距最大,所以我们将一个点设为0,其他点设为INF刷即可。 这道题竟然卡spfa!由于按照题意没有负权边,所以用dij+heap就可以愉快的A掉此题。示例程序#include<cstdio> #include<cstring> #include<qu原创 2017-07-10 15:00:36 · 408 阅读 · 1 评论 -
差分约束系统
定义由n个变量和一系列形如xi−xj<=kx_i-x_j<=k(k是常数)的不等式组成的系统称为差分约束系统。求解分析最短路模型,我们会发现求得最短路(将i的最短路设为dis(i))之后,对于任何边(设为x->y长度为z),都有: dis(x)+z>=dis(y)dis(x)+z>=dis(y) 这感觉怎么这么眼熟呢…… dis(y)−dis(x)<=zdis(y)-dis(x)<=z 然后原创 2017-07-09 21:27:29 · 401 阅读 · 2 评论 -
【差分约束系统】POJ1201[Intervals]题解
题目概述选最少的整数,使得给出每个区间[xix_i,yiy_i]的整数个数都>=cic_i。解题报告这道题有这很明显的约束条件,可以发现是差分约束系统。我们假设dis(i)表示MIN~i(MIN=min{xix_i-1|1<=i<=n})选择的个数,则每个约束条件形如dis(yiy_i)-dis(xix_i-1)>=cic_i。那么由于要求差距最小,所以我们需要刷最长路(最长路需要将约束条件变为>=原创 2017-07-11 08:08:20 · 456 阅读 · 0 评论