博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
差分约束小结
阅读量:6309 次
发布时间:2019-06-22

本文共 536 字,大约阅读时间需要 1 分钟。

定义:如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统。

我们知道差分约束系统是借助于最短路实现的,那我们在知道了定义之后就来看一下如何将几个不等式放到图上。

假设我们有一个不等式a-b<=c,那我们可以将它变为a<=b+c,所以我们便可以将这个表达式表示为点a向点b连一条权值为c的边,而如果同时有一个不等式a-b>=c,我们便可以将其变为b-a<=c,即b<=a+c,我们便可以由a向b连一条权值为c的边。我们在连好边之后要考虑的便是到底要跑最短路还是最长路。

假设我们要求c-a的最大值,而我们现在有c-a<=k1+k2和c-a<=k3两个式子,那我们知道为了同时满足这两个式子c-a的最小值应该是min{k1+k2,k3}。而如果我们如果要求c-a的最小值且有c-a>=k1+k2和c-a>=k3两个式子,c-a的取值便应该是max{k1+k2,k3},所以我们不难发现求最小值的时候要跑最长路,而求最大值的时候要跑最短路。

在知道以上这些之后做差分约束的题应该就不难了。

转载于:https://www.cnblogs.com/yzxverygood/p/9513435.html

你可能感兴趣的文章
简单的一条SQL,不简单的做事思维 NOT IN 、NOT EXISTS、LEFT JOIN用法差别 ...
查看>>
DataWorks:任务未运行自助排查
查看>>
ionic/cordova热部署
查看>>
「镁客早报」特斯拉裁员,马斯克解释没有办法;微软推出Azure DevOps赏金计划...
查看>>
Flink入坑指南第五章 - 语法糖 view
查看>>
centos 7.4 使用 pgxc_ctl 安装与使用
查看>>
Redis 单key值过大 优化方式
查看>>
【数据库】表分区
查看>>
nutz-sqltpl 1.3.4.RELEASE 发布,在 Nutz 项目中“解决 Java 拼接 SQL”问题
查看>>
城市 | 800个地铁站数据透析的京沪白领图鉴:隐形土豪、无产中产阶级和猪猪女孩...
查看>>
前端脚本!网站图片素材中文转英文
查看>>
linux的常用易忘命令
查看>>
PHP 分割字符串
查看>>
java 基于QRCode、zxing 的二维码生成与解析
查看>>
关于职业规划的一些思考
查看>>
img垂直水平居中与div
查看>>
Fabrik – 在浏览器中协作构建,可视化,设计神经网络
查看>>
防恶意注册的思考
查看>>
http2-head compression
查看>>
C# 命名空间
查看>>