首页 > 其他分享 >差分约束&判负环技巧

差分约束&判负环技巧

时间:2022-11-07 19:33:39浏览次数:41  
标签:dist 技巧 入队 差分 约束 判负 ge 如果

优化

差分约束时常常需要判断负/正环,需要对SPFA做一些优化,如下:

  1. 如果一定有解,使用队列实现SPFA;
  2. 如果只用判环,不需要求解,使用栈实现;
  3. 如果可能无解,可以把握一下,如果题目大概率无解或者较大数据也会无解,用栈实现,不然用队列。
  4. 也可以判断点的入队总入队次数是否大于一个较大值,如果是,那么大概率有环,直接返回真。

差分约束

作用:求不等式组的可行解\(\le / \ge\),\(a>b\)一般要变成\(a \ge b + 1\)。

原理:

  1. 最短路问题中,如果有一条边\((u, v, w)\),那么\(dist_v \le dist_u + w\);
  2. 最长路问题中,如果有一条边\((u, v, w)\),那么\(dist_v \ge dist_u + w\);
    证明:
    以最短路为例。

假设\(dist_v > dist_u + w\),那么可以令\(v\)最短路径为\(S->...->u->v\),此时\(dist_v=dist_u+w\),矛盾。

标签:dist,技巧,入队,差分,约束,判负,ge,如果
From: https://www.cnblogs.com/zhangchenxin/p/16867158.html

相关文章

  • 数学(环形数组) 数组 技巧 字符串
    918.环形子数组的最大和intsum=0,curMax=0,max=nums[0],curMin=0,min=nums[0];for(inti:nums){curMax=Math.max(curMax+i,i);max=Math.max......
  • 树上前缀和与差分(边权)
    问题描述有一棵n个点的树,每个点i有点树v[i],q个询问求点u到点v最简路径上所有点权之和输入格式第一行n,q表示有n个点,q个询问第二行n个整数表示每个点的权下面n-1每行三个整......
  • node.js inspect 浏览器 断点调试技巧与原理
    做前端开发你一定会用到浏览器自带的各种调试工具firebug谷歌的debugtools等,我们太过于熟悉使用这些工具了,以致于在node开发中同样的js文件我们是否也可以用浏览器就行调......
  • Vue3必会技巧-自定义Hooks
    Vue3自定义Hooks定义:个人理解:一些可复用的方法像钩子一样挂着,可以随时被引入和调用以实现高内聚低耦合的目标,应该都能算是hook;为什么Vue3要用自定义Hook?:结论:就是为了......
  • CodeTON Round 3 (C.差分维护,D.容斥原理)
    C.ComplementaryXOR题目大意:给你两个01串ab,问你是否可以通过一下两种操作在不超过n+5次的前提下将两个串都变为0,同时需要输出可以的操作方案选择一个区间[l,r]将......
  • R语言使用逻辑回归Logistic、单因素方差分析anova、异常点分析和可视化分类iris鸢尾花
    摘要本文将探讨Fisher和Anderson ​​鸢尾花​​数据集中呈现的三个变量之间的关系,特别是virginica和versicolor级别的因变量变量物种对预测变量花瓣长度和花瓣宽度......
  • 团队沟通效率低的 5 个原因和高效的团队合作技巧
    团队沟通看似简单,但如果做不好将对团队的效率和产出有巨大的伤害,这篇文章介绍了5个团队无效沟通的原因,包括有个人问题,团队问题,远程沟通问题,文化壁垒,接受反馈问题等等,同时,......
  • 基础算法篇——前缀和与差分
    基础算法篇——前缀和与差分本次我们介绍基础算法中的快速排序,我们会从下面几个角度来介绍前缀和:前缀和介绍前缀和基本题型前缀和介绍首先我们来简单介绍一下前缀和......
  • 在 flutter 中使用枚举的技巧
    在flutter中使用枚举的技巧前言例如,不管是谁在Kotlin之后,再开发Dart都对它带来的种种限制感到失望。其中之一是枚举类。单独使用枚举值是可以的,但是还有别的吗?你......
  • Day03.1:初学者安装IDEA后需要知道的小技巧
    初学者安装IDEA后需要知道的小技巧1.输入psvm直接生成main方法2.输入sout可以直接生成输出语句3.代码放大设置4.注释颜色更改5.代码字体大小通过Ctrl+鼠标滑轮......