浅谈差分约束问题

差分约束

差分约束是解决这样一类问题

给出\(n\)个形如\(x[j]-x[i]<=k\)的式子,求\(x[n]-x[1]\)的最大/最小值

思路

其实这个问题是挺套路的

我们把给出的式子变一下

\(x[j]-x[i]<=k\)

\(x[j]<=x[i]+k\)

我们不难联想到图论中最短路的性质

假设\(d[x]\)表示\(1\)到\(x\)的最短路

那么对于任意一条边\((u,v)\)

有\(d[v]<=d[u]+k\)(k表示边权)

可能有些抽象,举个例子

经过计算不难得到三个不等式

  1.(3)                 x3 - x0 <= 8
  2.(2) + (5)           x3 - x0 <= 9
  3.(1) + (4) + (5)     x3 - x0 <= 7

这样的话,我们在满足条件的情况下\(x[3]-x[0]\)最大为\(7\)

我们按上面的方法建出图

不难发现图中的最短路就是我们想要的答案!

难道这是巧合么?

肯定不是。仔细观察不难发现,我们连边的过程其实就是在转换不等式,求最短路其实就是求最小的限制条件。这样求出来的最短路即为满足条件的最大值

总结

这玩意儿其实挺套路的

如果你找出了题目中的限制条件,直接建图就好

最大值—>把所有式子整理为\(x[j]-x[i]<=k\),从\(i\)向\(j\)连一条边权为\(k\)的边,跑最

最小值—>把所有式子整理为\(x[j]-x[i]>=k\),从\(i\)向\(j\)连一条边权为\(k\)的边,跑最

在求解的时,因为经常要判断负环,所以选用SPFA算法

当一个点的入队次数超过\(n\)时必定出现负环

例题

几道水题

POJ1201

POJ1275

HDU3440

还有两道\(n\)年以前做的,没写题解

洛谷P1993

洛谷P3275

原文地址:https://www.cnblogs.com/zwfymqz/p/8515897.html

时间: 2024-11-03 15:49:05

浅谈差分约束问题的相关文章

浅谈差分约束系统——图论不等式的变形

浅谈差分约束系统——图论不等式的变形 ----yangyaojia 版权声明:本篇随笔版权归作者YJSheep(www.cnblogs.com/yangyaojia)所有,转载请保留原地址! 一.定义 如若一个系统由n个变量和m个不等式组成,并且这m个不等式对应的系数矩阵中每一行有且仅有一个1和-1,其它的都为0,这样的系统称为差分约束( difference constraints )系统. 二.分析 简单来说就是给你n个变量,给m个形如x[i]-x[j]≥k①或x[i]-x[j]≤k②.求两

浅谈差分数组的原理及简单应用

一.差分数组的定义及用途 1.定义: 对于已知有n个元素的离线数列d,我们可以建立记录它每项与前一项差值的差分数组f:显然,f[1]=d[1]-0=d[1];对于整数i∈[2,n],我们让f[i]=d[i]-d[i-1]. 2.简单性质: (1)计算数列各项的值:观察d[2]=f[1]+f[2]=d[1]+d[2]-d[1]=d[2]可知,数列第i项的值是可以用差分数组的前i项的和计算的,即d[i]=f[i]的前缀和. (2)计算数列每一项的前缀和:第i项的前缀和即为数列前i项的和,那么推导可知

浅谈差分数组的应用(二)&amp;[NOIP2012]借教室题解

[NOIP2012提高&洛谷P1083]借教室 Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样.面对海量租借教室的信息,我们自然希望编程解决这个问题. 我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借.共有m份订单,每份订单用三个正整数描述,分别为dj,sj,tj,表示某租借者需要从第sj天到第tj天租借教室(包括第sj天和第tj天),每天需要

浅谈差分约束系统

前言 差分约束系统应该是一个比较有用的算法.它建立在图的思想上,常与最短(长)路算法一起出现. 一道例题 下面是一组不等式: \[A-B≥5\tag{①}\] \[B-E≥7\tag{②}\] \[A-E≥6\tag{③}\] \[D-A≥9\tag{④}\] \[B-C≥6\tag{⑤}\] \[C-E≥2\tag{⑥}\] 现在问你一个问题:\(A-E\)的最小值是多少? 其实在这组不等式中,我们有很多方法得到一个形如\(A-E≥x\)的式子: 第一种方法:由③式直接得\(A-E≥6\) 第

浅谈数据库约束

国有国法 家有家规 其实很多时候技术和生活息息相关,怎样的需求就会有出来解决方案 数据库也是那么一个神奇的东西,毕竟是关系型数据库,数据独立而又可以表表关联,有时候就需要约束,在某些时候要规规矩矩做人做事,才能更有价值. 先谈谈约束 开篇是闲谈,约束的根本是保护数据库内数据的完整性,完整性就是数据的精确性和可靠性,那些数据库中的数据都符合某种定义规则,当不符合这些规则,就会操作失败. 主键是啥 主键防止同一个数据表中两端记录相同,保证了数据的完整性,通过主键查询返回只有一行的数据,而且主键一个表

浅谈树上差分

浅谈树上差分 [引子] 我们遇到一些关于树的问题时,往往需要我们统计一些树上的信息,比如子树和,路径边覆盖.点覆盖(目前没见过别的类型).暴力的解法当然是遍历逐个点对其权值进行修改. 类比序列问题,其在进行区间修改时,可以用差分将\(O(n)\)复杂度降为\(O(1)\).在树上我们是对一条链进行处理,那差分在树上可不可用呢?答案是肯定的. [从序列到树] 在一个序列上进行差分的操作,相信各位都十分熟悉:假设当前我们要对一个序列的\(l\sim r\)区间的每个数执行\(+k\)操作,那么对于差

浅谈对差分隐私的理解

在听完第五组的报告之后,浅谈一下对差分隐私的认识,主要针对差分隐私的思想做一个大致的梳理. 为什么会产生差分隐私? 由于有些“聪明”的用户为了知道某些信息,可以通过两次查询结果的差异进行对比,从而在两次数据的对比中找到有用的信息.正如在杨顼组的报告中提到的查询二等兵约瑟夫阿伦是否阵亡的信息,可以通过查询D5和D6两次数据结果,将两次数据结果进行对比就可以知道约瑟夫阿伦是否阵亡的消息. 差分隐私的主要思想: 差分隐私是基于噪音的安全计算方法,它的思想是:对计算过程用噪音干扰,让原始数据淹没在噪音中

浅谈自然语言处理基础(下)

命名实体识别 命名实体的提出源自信息抽取问题,即从报章等非结构化文本中抽取关于公司活动和国防相关活动的结构化信息,而人名.地名.组织机构名.时间和数字表达式结构化信息的关键内容,所以需要从文本中去识别这些实体指称及其类别,即命名实体识别和分类. 21世纪以后,基于大规模语料库的统计方法成为自然语言处理的主流,以下是基于统计模型的命名实体识别方法归纳: 基于CRF的命名实体识别方法 基于CRF的命名实体识别方法简便易行,而且可以获得较好的性能,广泛地应用于人名.地名和组织机构等各种类型命名实体的识

关系型数据库表结构设计规范-浅谈(转)

数据库表结构设计规范-浅谈,为啥是浅谈呢,因为主要的观点还是来自原微信公共账号的一篇文章,稍微加了一些自己的看法. 谁来进行数据库的设计? 肯定是具体的开发工程师来进行,开发同学的话,第一业务熟悉度比较高,第二结合OO和ORM的思想,能有比较好的运用关系型数据库的特性.如果是DBA同学的话,虽然对于数据库本身了解比较多,但是对于业务了解较少,很难有比较客观的设计.但是业务上线或者运行期间,需要DBA同学能够重度的加入进来,针对一些性能点和不合理的点进行优化,同事也可以在上线前,针对SQL进行re