差分约束系统专题 && 对差分约束系统的理解
具体能解决的问题:
求最长路,最短路,或者判断解是否存在。
在建边的时候:
一般是给你区间减法的关系,或者是这个点到另一个点的关系。如果给你的关系是除法的话,我们可以通过使用两边同时取log的方式,将除法变成两个式子的减法,这样就转换成了减法的建边。
判断最优解的时候:
一般是判断是否有负环或者正环,但是一个spfa只能判断一种,因为正环和负环的松弛条件是不同的,在判断是正环还是负环的时候,一般是判断某一个点的入队次数是不是大于总的点数,如果存在这种情况那肯定是存在正环或者负环的,如果是tle的话,可以考虑(仅供考虑)的一种优化的判断,判断某一个点的入队次数是不是大于sqrt(总的点数)。
对建边的初步理解:
1,如果是求最长路或者最短路的话,我们可以将所有的不等式都化成如下的式子,posA-posB<=d。
然后对于求最长路,就是在spfa的基础上改就可以了。将dis输出初始化成-inf,然后判断条件变成if(dis[ed]<dis[st]+edge[i],cost),这样的时候再去更新。
如果是求最短路的话,松弛条件改一下就可以了。
然后再就是建边的时候,有两种方法(超级源点的建立)。
第一种,如果是求前缀的话,对于posA-posB<=d,我们可以addedge(A,B,d)。这样话,就相当于从大的方向去链接小的方向,注意,如果只是按照题目条件去建边的话,整个图可能是不连通的,为了使图联通,我们可以建立一个超级源点,如果是从大的方向向小的方向建边的话,我们可以使超级源点是(总点数+1),然后这个超级源点再去连其他所有的点,边权为0,这样就不会影响到图,并且能够保证整个图是联通的。
第二种,如果是求后缀的话,我们就可以按照第一种的方法反着来就行了。
但是建边的额时候还是尽量少建点边,很可能会超时。
判断可行解:
对于区间的可行解的话,我们可以直接从右边界遍历到右边界,如果可以的话,判断两个相邻的点的dis(一般间隔是1)是不是变了没如果变了就说明当前这个点肯定有解。
差分约束系统专题 && 对差分约束系统的理解的更多相关文章
- 差分数组 and 树上差分
差分数组 定义 百度百科中的差分定义 //其实这完全和要讲的没关系 qwq 进去看了之后是不是觉得看不懂? 那我简单概括一下qwq 差分数组de定义:记录当前位置的数与上一位置的数的差值. 栗子 容易 ...
- 树上差分 (瞎bb) [树上差分][LCA]
做noip2015的运输计划写了好久好久写不出来 QwQ 于是先来瞎bb一下树上差分 混积分 树上差分有2个常用的功能: (1)记录从点i到i的父亲这条路径走过几次 (2)将每条路径(s,t ...
- 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md
前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OS ...
- Java并发专题(三)深入理解volatile关键字
前言 上一章节简单介绍了线程安全以及最基础的保证线程安全的方法,建议大家手敲代码去体会.这一章会提到volatile关键字,虽然看起来很简单,但是想彻底搞清楚需要具备JMM.CPU缓存模型的知识.不要 ...
- 字典树&&01字典树专题&&对字典树的理解
对于字典树和01字典树的一点理解: 首先,字典树建树的过程就是按照每个数的前缀来的,如果你要存储一个全小写字母字符串,那么这个树每一个节点最多26个节点,这样的话,如果要找特定的单词的话,按照建树的方 ...
- 专题:LFS构建逻辑理解
严格来说,LFS只能称为“pseudo LFS”,WHY? 因为LFS归根结底,还是基于已有的操作系统平台构建而来,并非真正的从0开始,它没有突破所谓“鸡与蛋”的死循环:但它确实有助于理解Linux的 ...
- 差分:IncDec Sequence 差分数组
突然就提到了这个东西,为了不再出现和去年联赛看见二分没学二分痛拿二等第一的情况,就去学了一下,基础还是比较简单的-- 先看一个经典例题: 给定一个长度为n的数列{a1,a2...an},每次可以选择一 ...
- 『Candies 差分约束系统』
差分约束系统 我们先来认识一下差分约束系统鸭! 差分约束系统是一种特殊的\(n\)元一次不等式组,它包含了\(n\)个变量\(x_1-x_n\)以及\(m\)个不等式(约束条件).其中每一个不等式形如 ...
- PCB走线分析——直角、差分、蛇形线
PCB直角走线的影响 布线(Layout)是PCB设计工程师最基本的工作技能之一.走线的好坏将直接影响到整个系统的性能,大多数高速的设计理论也要最终经过 Layout 得以实现并验证,由此可见,布 ...
随机推荐
- 浅析Web数据存储-Cookie、UserData、SessionStorage、WebSqlDatabase
Cookie 它是标准的客户端浏览器状态保存方式,可能在浏览器诞生不久就有Cookie了,为什么需要Cookie 这个东东?由于HTTP协议没有状态,所以需要一个标志/存储来记录客户浏览器当前的状态, ...
- HDU1565_方格取数(1)
给一个数字方阵,你要从中间取出一些数字,保证相邻的两个数字不同时被取出来,求取出来的最大的和是多少? 建立图模型,对于行列的和为奇数的格子,建立一条从原点到达这个点的边,对于行列和为偶数的格子,建立一 ...
- MySQL命令行导入.sql文件遇到的问题
导入.sql文件的命令行只有一句.但因为.sql文件大,在把本地的.sql文件导入到阿里云服务器的MySQL数据库时遇到了两个问题导入.sql文件的命令(假设数据库名为mydb,用户名root,密码1 ...
- MT【141】逆用特征根法
(清华大学THUSSAT) 已知 \(a=\left( \dfrac{-1+\sqrt{5}}{2} \right)^{-10}+\left( \dfrac{-1-\sqrt{5}}{2} \righ ...
- 【BZOJ1072】排列(搜索)
[BZOJ1072]排列(搜索) 题面 BZOJ 洛谷 题解 算下复杂度,如果用\(next\_permutation\) 那就是\(10!\times 10\times 15\),复杂度不太对 那好 ...
- 前端学习 -- Css -- 伪元素
:first-letter 表示第一个字符 :first-line 表示文字的第一行 :before 选中元素的最前边,一般该伪类都会结合content一起使用,通过content可以向指定位置添加内 ...
- Android L开发指南
导语:Android下一代操作系统“ L”对开发者意味着什么?ART模式能否让应用的体验超越苹果? 刚刚结束的 Google I/O大会上,Android下一代操作系统“ L”带来不少惊喜.新系统运行 ...
- bzoj 2839 : 集合计数 容斥原理
因为要在n个里面选k个,所以我们先枚举选的是哪$k$个,方案数为$C_{n}^k$ 确定选哪k个之后就需要算出集合交集正为好这$k$个的方案数,考虑用容斥原理. 我们还剩下$n-k$个元素,交集至少为 ...
- echarts分组柱状图的前后台处理 带平均线显示
原生的echarts使用: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /&g ...
- SpringMVC 上传文件(文件非必填)MultipartHttpServletRequest
原文:https://blog.csdn.net/dorothy1224/article/details/79136676 上传文件(文件非必填)MultipartHttpServletRequest ...