题目: 不难看出题意主要是给出ml+md个格式为xi-xj<=ak的不等式,xi-xj为i,j俩头牛的距离,要我们求x1-xn的最大值. 经过上下加减我们可以将这几个不等式化成x1-xn<=a1+a2+a3+a4+....+ak,在这加减的过程中我们不难看到dijstra的身影,这加加减减的过程不正是松弛操作吗! 这时我们就得到了正解——差分约束算法,此算法主要用于处理差分约束系统:如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则…
题目描述 正如其他物种一样,奶牛们也喜欢在排队打饭时与它们的朋友挨在一起.\(FJ\) 有编号为 \(1\dots N\) 的 \(N\) 头奶牛 \((2\le N\le 1000)\).开始时,奶牛们按照编号顺序来排队.奶牛们很笨拙,因此可能有多头奶牛在同一位置上. 有些奶牛是好基友,它们希望彼此之间的距离小于等于某个数.有些奶牛是情敌,它们希望彼此之间的距离大于等于某个数. 给出 \(M_L\)​ 对好基友的编号,以及它们希望彼此之间的距离小于等于多少:又给出 \(M_D\)​ 对情敌的编…
题目描述 一条街的一边有几座房子.因为环保原因居民想要在路边种些树.路边的地区被分割成块,并被编号成1..N.每个部分为一个单位尺寸大小并最多可种一棵树.每个居民想在门前种些树并指定了三个号码B,E,T.这三个数表示该居民想在B和E之间最少种T棵树.当然,B≤E,居民必须记住在指定区不能种多于区域地块数的树,所以T≤E-B+l.居民们想种树的各自区域可以交叉.你的任务是求出能满足所有要求的最少的树的数量. 写一个程序完成以下工作: 输入输出格式 输入格式: 第一行包含数据N,区域的个数(0<N≤…
题目大意:给定一个长度为 N 的递增序列,有 M 组差分约束关系,求满足这些约束关系时,第一个数和第 N 个数的差是多少. 题解:首先,能否满足约束关系需要判断一下负环,若满足约束关系,再从第一个点 spfa 即可求出答案.大于小于号打反检查一个小时,好久没遇到这种错误了..我枯了QAQ.... 代码如下 #include <bits/stdc++.h> using namespace std; const int maxv=1010; const int maxe=1e5+10; const…
题面链接 sol:差分约束系统裸题,根据a+b<=c建个图跑个最短路就没了... #include <queue> #include <cstdio> #include <cstring> #include <iostream> using namespace std; #define int long long #define M(a,v) memset(a,v,sizeof a) ,inf=0x7fffffffffff; ,Next[N*],to[…
差分约束 差分约束,一般用来解决有\(n\)个未知数,\(m\)个不等式方程的问题,形如: \[\begin{cases} \ x_{a_1}-x_{b_1}\leq y_1\\ \ x_{a_2}-x_{b_2}\leq y_2\\ \ \cdots\\ \ x_{a_m}-x_{b_m}\leq y_m\\ \end{cases} \] 可以判断有没有解,以及给出一组解 简单观察可以知道,每个未知数的系数都为\(1\),且不等式一边是两个未知数相减,另一边是一个常数 为了达到这种形式,一般都…
怎么搞?        1. 如果要求最大值      想办法把每个不等式变为标准x-y<=k的形式,然后建立一条从y到x权值为k的边,变得时候注意x-y<k =>x-y<=k-1     将这些约束条件转化为差分约束,不妨设T[x] = S[1]+S[2]+....S[x],那么上面式子就可以转化为:         1. T[si+ni] - T[si-1] > ki          2. T[si+ni] - T[si-1] < ki          又差分约…
题面lalala 这居然是个紫题???原谅我觉得这题是模板... 这个这个,这题的算法呢其实是一个叫差分约束的东西,也是今天下午我们机房的重点,如果不知道这个差分约束是个啥的人呢,自行百度一下谢谢.. 好吧还是简单介绍一下,简而言之,就是对一堆子不等式进行最短路模型化,然后依照问题用最短(长)路跑一(两)遍,基本上就可以求出答案 那么剩下的东西呢都在代码里了 // luogu-judger-enable-o2 #include<iostream> #include<cstdio>…
题目 差分约束模板. 注意判负环需要建一个超级源点到每个点连一条\(0\)的边.因为\(1\)不一定能到达所有的点. #include<bits/stdc++.h> #define pi pair<int,int> #define pb push_back using namespace std; int read(){int x;scanf("%d",&x);return x;} const int N=1007,inf=0x3f3f3f3f; vec…
题目描述 给出一组包含 $m$ 个不等式,有 $n$ 个未知数的形如: 的不等式组,求任意一组满足这个不等式组的解. 输入格式 第一行为两个正整数 $n,m$,代表未知数的数量和不等式的数量. 接下来 $m$ 行,每行包含三个整数 $c,c',y$,代表一个不等式 $x_c-x_{c'} \leqslant y$. 输出格式 一行,$n$ 个数,表示 $x_1​,x_2​⋯x_n$​ 的一组可行解,如果有多组解,请输出任意一组,无解请输出$NO$. 样例数据 输入 3 3 1 2 3 2 3 -…