详细教程看这个,挺不错
到联赛了还要看一遍教程的我是不是没救了= =
主要就记住一个套路,
如果不等式形如x[i]+b<=x[j],
那么从i向j连一条b的边,跑最长路;
如果不等式形如x[i]+b>=x[j],
那么从i向j连一条b的边,跑最短路。
求a[x]-a[y]的最值,跑x~y的最长/短路。
如果每个点还有额外限制(比如>=1),
可以考虑建立超级源啊超级汇啊之类的。
例题:bzoj2330
有一些问题经过转化也可以变成普通的差分约束问题。
比如说告诉你一段区间内的数的和>=某个值,
问你总序列的最值。
那么这种时候就要用前缀和,尽量作出差的形式。
具体变换还有挺多的,碱基形势(lll¬ω¬)
模板整理: 图论---差分约束
最新推荐文章于 2022-09-04 10:14:04 发布