差分约束总结
差分约束其实主要靠思想
一、概念(就当这是放屁)
给你提供几个要满足的条件,然后询问满足条件的情况,差分约束就是通过构造图之类的东西来优化暴力,成为AC代码……
二、大概理解
1.给定很多个条件:形如 ai - aj <= k 。
我们试图转换一下: ai <= aj + k 。(差不多是废话)
但是,有没有觉得这个式子有点眼熟,没错,就是最短路
2.把ai看作i到1的最短路径长度,那么为了约束住 ai <= aj + k 的条件,我们在i,j中间连一条长为k的边即可(仔细思考一下就懂了)
为什么一定符合呢,最短路的知识可以完美解释(要么ai已经变得比 aj + k 小了,不然就可以被其更新为最短路,所以如果在这个图上跑最短路,结果无论如何都会符合)
3.有各种各样的约束条件,因题而变,我只是举个例子
三、题目
题目的话,我已经懒得不想加链接了,所以去我专题里看吧……(其实也很少!)
哪怕人间是炼狱,梦想永远是天堂
继续走下去吧,理想永远都年轻,花儿一定会再次盛开