
差分约束
文章平均质量分 63
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
HDU1534差分约束
题目题目思路S[1,n] 表示第i个零件的开始时间S[n+1,2*n] 表示第i-n个零件的结束时间S[i+n]-s[i]=T[i],等于号可以化为小于等于、大于等于两个约束条件。其他约束条件按题目来就行。求最小值,用最长路。代码#include <bits/stdc++.h>using namespace std;const int N = 1e5;struct node{ int v, w;};vector<node> edge[N];i原创 2021-07-16 16:02:24 · 179 阅读 · 0 评论 -
HDU3592差分约束
题目World Exhibition 思路按照题目建图即可。需要注意的是,用最短路求解差分约束系统,是把某一个变量(即图中的源点)假设为一个值X,以此来推出其他变量可取的最大值。同理,用最长路求解差分约束系统,是把某一个变量(即图中的源点)假设为一个值X,以此来推出其他变量可取的最小值。这题要求1到n的最大距离,只需以1为起点跑最短路求出DisnDis_nDisn最大值或者以n为起点跑最长路求出Dis1Dis_1Dis1最小值。代码最短路#include <bits/stdc++.原创 2021-07-15 19:07:38 · 205 阅读 · 0 评论 -
HDU3592取log转化为差分约束系统
题目World Exhibition思路根据题意,有L<=Cij∗aibj<=UL<=\frac{C_{ij}*a_i}{b_j}<=UL<=bjCij∗ai<=U得L∗Cij<=aibj<=U∗CijL*C_{ij}<=\frac{a_i}{b_j}<=U*C_{ij}L∗Cij<=bjai<=U∗Cij要转化为差分约束系统,变量之间的关系必须是差的关系。可以取log将除法转化为减法log(L∗Cij原创 2021-07-15 10:07:01 · 171 阅读 · 0 评论 -
HDU1384差分约束
题目Intervals在一个非负半轴上,给出n个限制条件,每个条件格式为l r k。表示在闭区间[l,r][l,r][l,r]上,至少要有k个点被染色。问,要同时满足这n个限制条件,最少要染色多少个点。思路可以用D[i]D[i]D[i]表示闭区间[0,i][0,i][0,i]有多少个点被染色。这样对于每个输入的限制条件,就有D[r]−D[l−1]>=kD[r]-D[l-1]>=kD[r]−D[l−1]>=k。因为输入的是闭区间,所以左端点要减一。另外0减一可能会出现-1,因此把输入原创 2021-07-14 10:15:05 · 205 阅读 · 0 评论 -
差分约束模板
差分约束系统百度百科:如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。求解差分约束系统,可以转化成图论的单源最短路径(或最长路径)问题。求解洛谷模板题下面就是一个差分约束系统。{x1−x2<=c1x2−y3<=c2x1−y3<=c3\begin{cases}x_1-x_原创 2021-07-13 16:20:50 · 262 阅读 · 0 评论