随笔分类 -  基础算法—— SPFA

摘要:标算是贪心,我写了个差分约束????? 设dist[i]表示1-i号土地种的树的总棵数,考虑以下几种约束条件: 1)dist[y]>=dist[x]+z,即x号土地至y号土地间至少种了z棵树 2)dist[i-1]>=dist[i]-1,即i号土地最多比i-1号土地多种1棵树 3)dist[i]>= 阅读全文
posted @ 2019-07-11 07:59 shao0320 阅读(136) 评论(0) 推荐(0) 编辑
摘要:洛谷上的翻译是真的哲学♂♂♂ 非常van的题目传送门♂♂♂ 个人认为这题充其量也就是个蓝(nan)题,首先处理-1的情况,-1的情况是不等式组无解,按照差分约束的规则,无解说明出现了负环,先跑一遍以0为源点的SPFA判断有无负环即可。再来处理-2的情况,结果为-2就说明1号和n号节点不存在直接的或间 阅读全文
posted @ 2019-06-26 20:20 shao0320 阅读(232) 评论(0) 推荐(0) 编辑
摘要:题目传送门 差分约束系统很棒的应用,首先运用前缀和的思想,令s[k]为0~k中被选出来数的个数,则s[b[i]]>=s[a[i]-1]+c,这样会有一个问题,那就是下标可能会出现负数,因此我们可以改变前缀和表示的方法,设s[k]为0~k-1中被选出来的数,则约束条件可以转化为:s[b[i]+1]-s 阅读全文
posted @ 2019-06-25 20:35 shao0320 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目传送门 对于一个刚接触差分约束系统的OIer来说,这算是一道细节比较多,也比较难的题。首先就是这道题有5种不同的约束条件,对于条件1,3,5直接按照差分条件建边即可,条件2,4要先移项,再建边。之后再求单源最长路,好不容易做出来后你就会发现数据卡SPFA!!!!这里可以加两个小小的优化:1)当a 阅读全文
posted @ 2019-06-24 22:15 shao0320 阅读(171) 评论(0) 推荐(0) 编辑
摘要:差分约束系统解决的是一个N元1次不等式求解的问题,其中每一个不等式都形如Xi-Xj<=Ck,其中Ck为常数。差分约束系统与最短路关系甚密,可以用最短路算法求解,即先对不等式进行移项操作,将不等式转化为Xi<=Xj+Ck,这正是求完单源最短路后应该满足的条件(在没有负环的情况下)。其中每一个变量可以看 阅读全文
posted @ 2019-06-24 21:09 shao0320 阅读(407) 评论(1) 推荐(1) 编辑
摘要:一、基于各种数据结构的SPFA 以下各个数据均为不卡SPFA的最短路模板:P3371 【模板】单源最短路径(弱化版)的测试时间 1、STL队列:用时: 1106ms / 内存: 8496KB 1 #include<iostream> 2 #include<cstdio> 3 #include<cst 阅读全文
posted @ 2019-06-18 19:42 shao0320 阅读(344) 评论(1) 推荐(0) 编辑
摘要:题目传送门 这是一道次短路的板子题,和“路障”那一题不同的是,这个题的次短路不是严格大于最短路,所以连分类讨论都不用了,直接记录路径后删边求最短路即可。 下面给出参考程序: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 # 阅读全文
posted @ 2019-06-12 18:53 shao0320 阅读(207) 评论(0) 推荐(0) 编辑
摘要:题目传送门 这题题意很明确,就是求图的次短路,我用了一个非常奇葩的方法:伟大的分类讨论; 注意,以下说明均针对无向图 首先,图的次短路只有2种情况: 1)1次最短路+乱转(源点->最短路上离其他点最近的点->离它最近的点->返回这个点->终点) 2)直接次短路(依次屏蔽每一条边) 可以证明,无向图的 阅读全文
posted @ 2019-06-10 19:31 shao0320 阅读(239) 评论(0) 推荐(0) 编辑
摘要:题目传送门 十分值得一做的最短路,题目意思十分明确,一条边权值加倍后最多比加倍前的最短路花费多多少。首先看到m<=5000,第一念头就是跑m遍最短路,但是会严重超时,实际上是由于有些边的权值改变,对最短路没有造成任何影响,才导致了我们程序的严重超时,所以我们采取第一次跑最短路记路径的方法。开三个辅助 阅读全文
posted @ 2019-06-07 22:00 shao0320 阅读(303) 评论(2) 推荐(0) 编辑
摘要:题目传送门 解析: 题目释义:一张图有c个节点,每个节点有一个相等的权值d,有p条无需花费的路径和f条需要花费的路径,求图中最长路。 算法设计: 由于可能出现正环,所以需要SPFA算法,在加边的时候把p条无需花费的路径边权设为d,而f条需要花费的路径设为d-z(其中z是这条路需要的花费)。由于终点不 阅读全文
posted @ 2019-06-07 20:46 shao0320 阅读(187) 评论(0) 推荐(0) 编辑
摘要:Dijkstra在正权图上运行速度很快,但是它不能解决有负权的最短路,如下图: Dijkstra运行的结果是(以1为原点):0 2 12 6 14; 但手算的结果,dist[4]的结果显然是5,为什么会出现这种情况呢?原因很显然,Dijkstra认为,从一个更长的边过来不会比一个更短的边过来更短(读 阅读全文
posted @ 2019-06-01 10:26 shao0320 阅读(412) 评论(0) 推荐(0) 编辑
摘要:题目描述 C国有n个大城市和m 条道路,每条道路连接这 n个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 1条。 C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城 阅读全文
posted @ 2019-05-25 15:23 shao0320 阅读(105) 评论(0) 推荐(0) 编辑
摘要:题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复。 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行。 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城市路上所需花费的时间。 麦克在车中无意中听到有一条路正在维修,并且那儿正堵车,但没听清楚到底是哪一条 阅读全文
posted @ 2019-04-15 20:30 shao0320 阅读(154) 评论(1) 推荐(0) 编辑
摘要:题目描述 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的 阅读全文
posted @ 2019-04-13 09:01 shao0320 阅读(220) 评论(1) 推荐(0) 编辑

****************************************** 页脚Html代码 ******************************************
点击右上角即可分享
微信分享提示