差分约束
差分约束
超级码力奥
这个作者很懒,什么都没留下…
展开
-
差分约束:雇佣收银员
原题链接:https://www.acwing.com/problem/content/395/#include <iostream>#include <cstring>using namespace std;/*num[i]表示i时刻有多少人申请上岗,x[i]为i时刻实际上岗的人数,s为x的前缀和数组。(1)上岗人数不能负数,即 s[i]−s[i−1]>=0(2)实际上岗人数不能超过申请人数,即 s[i]−s[i−1]<=num[i](3)i时刻所在人原创 2022-03-12 10:17:09 · 205 阅读 · 0 评论 -
差分约束:排队布局
原题链接:https://www.acwing.com/problem/content/1172/需要满足三个差分约束条件:假设左边的点是a,右边的点是b.一些奶牛相互间存有好感,它们希望两者之间的距离不超过一个给定的数 L。b - a <= L;一些奶牛相互间非常反感,它们希望两者间的距离不小于一个给定的数 D。b - a >= D;还有一个条件b >= a1 每头奶牛按编号排序 i+1 → i w = 0 <=> x[i] ≤ x[i+1]2 两者原创 2022-03-12 09:31:43 · 207 阅读 · 0 评论 -
差分约束:区间
这三个条件鬼能想到啊。。。Si表示1~i中被选出的数的个数。S0 = 0需要满足的差分约束条件:Si >= Si-1Si - Si-1 <= 1对于区间[a, b], Sb - Sa-1 >= C 这是题目中要求。现在需要求S50001的最小值#include <iostream>#include <cstring>using namespace std;/*对于这种区间问题,我们可以想到的几种方法中,前缀和最适用这一题sum_i.原创 2022-03-11 22:54:48 · 304 阅读 · 0 评论 -
差分约束:糖果
原题链接:https://www.acwing.com/problem/content/1171/这是求最短路的要求:把每个x[i] ≤ x[j] + C[k]不等式转化为一条从x[j]走到x[i]长度为C[k]的边 因为最短路中,更新过后如果j到i有一条权值为k的边,那么求完最短路之后,dist[i] <= dist[j] + k 一定成立(两边之和大于第三边)但是这道题由于要求每个点的最小值,所以我们要求最长路,因此要求是:把每个x[i] >=x[j] + C[k]不等式转化为一条从x原创 2022-03-11 20:47:02 · 361 阅读 · 0 评论 -
拓扑排序+差分约束:车站分级
原题链接:https://www.acwing.com/problem/content/458/这样进行优化的话,从左边走到右边,左边的点到右边的点的距离还是1,但是边的数量从n*m -> n+m参考详细的题解:https://www.acwing.com/solution/content/17458//* 对于每趟列车,不能经过的点到可以经过的点建边。其实就是一个差分约束问题 和奖金那道题挺像的。 由于边的数量可能有很多,这里有一个优化,建一个虚拟的点,先让起点到原创 2022-03-10 10:45:21 · 244 阅读 · 0 评论