差分约束
Mmm040403
这个作者很懒,什么都没留下…
展开
-
糖果[scoi]
题目链接:https://www.luogu.org/problem/P3275 有一堆限值条件然后还要求最值,就有些想到了差分约束。 大于可以转化成大于等于+1 对于约束a>=b,我们可以连一条边由b到a,这就意味着b至少比a要大1。 由于每个小朋友都需要一个糖果,我们就拟一个原始起点,让他连到所有的点的边都是1,这样就可以保证每个小朋友都有糖吃。 对于各种约束建成的图,从原点到...原创 2019-09-26 22:39:21 · 215 阅读 · 0 评论 -
序列-差分约束版本
题目链接:https://www.luogu.org/problem/P1645 “差分约束一定要转化成a-b>=c的形式!” ->用b连向a 题目里有一系列“至少”的要求,有些想到了差分约束。(当然贪心也是很好的) 设s[i]表示前i个数里面选了几个作为序列的一员,那么对于每个条件l,r,c就可以想到s[r]-s[l-1]>=c,并以此来建立边权。 那是不是这样就结束了...原创 2019-09-28 11:32:34 · 419 阅读 · 0 评论 -
poj1275 cashier-employment
因为题目问的是至少要招几个人,那我们就从小到大枚举要招几个人,看是否合法。 输入need表示这一小时至少需要工作的人数,然后用h存一下这一小时最多可以开始工作的人数(就是输入时可以达到的合法的工作人数)。所以每个小时开始工作的人数一定在0到h之间。所以可以考虑用每个小时开始工作的人作为差分变量。 但是还有一个限制:一个人只工作8个小时,所以对于某个点,从他开始前8个点开始工作的人数的和必须&g...原创 2019-09-28 11:52:54 · 159 阅读 · 0 评论 -
关于差分约束的一些总结
1. 对于差分约束起点以及一些隐含条件的设置。 举个例子:起点那个点其实是默认0的。 糖果一题里面每个小朋友都至少拿到一个,那么起点向每条边都连上1 而poj1275和序列2个题里面,由于有一个前缀和的思想,1.那么每个数都一定>=0,2.前一个数小于等于后一个数3.后一个数至多比前一个数大1。这是前缀和的特质所决定的。那么这个时候起点只需要连向第一个点搞一个边权为0的边就好了,而并不...原创 2019-09-28 18:18:42 · 179 阅读 · 0 评论