差分约束系统,求最小值,跑最长路. 转自:https://www.cnblogs.com/ehanla/p/9134012.html 题解:设sum[x]为前x个咕咕中至少需要赶走的咕咕数,则sum[b]−sum[a−1]>=c表示[a,b]区间至少赶走c只.题目中选择的是最少,我们需要跑最长路,因存在负边,所以以SPFA进行操作. d[v]>=d[u]+w,前面我们可以推出第一个式子sum[b]>=sum[a−1]+c,但是如果只连这些边,整张图连通不起来.我们发现i和i+1存在关系0…
题目链接 \(Description\) 有\(n\)个人在一条直线上跑步,每个人的起点 \(Si\).终点 \(Ei\) 已知:每个点可以放一个广告牌,一个人\(i\)能看到的广告牌数量为 \(Ei-Si+1\). 要求使每个人看到的广告牌数量不小于 \(k\) (若 \(Ei-Si+1<k\) 则应看到 \(Ei-Si+1\)).输出最少需要多少广告牌及方案. (这翻译2333) \(Solution\) 设 \(Sum_i\) 表示在 \([1,i]\) 广告牌总数,那么由题意有 \(Su…
题目链接 \(Description\) 给定一天24h 每小时需要的员工数量Ri,有n个员工,已知每个员工开始工作的时间ti(ti∈[0,23]),每个员工会连续工作8h. 问能否满足一天的需求.若能,输出最少需要多少员工. \(Solution\) 参考. 既然给的是开始工作时间,那么就先根据开始时间做 设Ai表示在i时开始工作的人数(未知),Bi表示i时可工作人数的上限(已知) 那么有:(注意可以跨天) A[i-7]+A[i-6]+...+A[i-1]+A[i] >= R[i] (7 <…
http://poj.org/problem?id=3159 题目大意: n个小朋友分糖果,你要满足他们的要求(a b x 意思为b不能超过a x个糖果)并且编号1和n的糖果差距要最大. 思路: 嗯,我先揭发一下,1号是分糖果的孩子,班长大人!(公报私仇啊...,欺负N号的小朋友~ 好吧,我开玩笑的) 嗯,这题要求最短路径.为啥是最短?你以前都在玩最长呀~ 因为这题要求的是最大的.图的三角不等式有:d[v]- d[u]<=w(u,v);  d[v]<=d[u]+w(u,v); 即而松弛的条件为…
以杭电2544题目为例 最短路 Problem Description 在每年的校赛里,全部进入决赛的同学都会获得一件非常美丽的t-shirt. 可是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的.所以如今他们想要寻找最短的从商店到赛场的路线.你能够帮助他们吗?   Input 输入包含多组数据. 每组数据第一行是两个整数N.M(N<=100.M<=10000).N表示成都的大街上有几个路口,标号为1的路口是商店所在地.标号为N的路口是赛场所在地,M则表示在成都有几条路.…
原题地址:http://poj.org/problem?id=3159 题意大概是班长发糖果,班里面有不良风气,A希望B的糖果不比自己多C个.班长要满足小朋友的需求,而且要让自己的糖果比snoopy的尽量多. 比如现在ABCD四个小朋友,B的糖果不能超过A的5个,如果A的史努比,D是班长,那么班长最多比史努比多7个糖果,而不是5+4+1=9个. 因为如果是9个,就不满足D-A<=(D-C)+(C-A)<=7的条件. 不懂的可以翻一下算法导论,上面有差分约束的定义和证明,总之这是一个求最短路的问…
这里感谢百度文库,百度百科,维基百科,还有算法导论的作者以及他的小伙伴们...... 最短路是现实生活中很常见的一个问题,之前练习了很多BFS的题目,BFS可以暴力解决很多最短路的问题,但是他有一定的局限性,该算法只能用于无权重即权重为单位权重的图,那么下面我们会介绍五种用途更广泛的算法...... 最短路径的几个变体 单源最短路径问题:我们希望找到从源结点s到其它所有结点的最短路径. 单目的地最短路径问题:找到从每个结点v到目的u的最短路径,如果将图中每条边的方向翻转过来,我们就可以将这个问题…
本来我是想把这两个算法分开写描述的,但是SPFA其实就是Dijkstra的稀疏图优化,所以其实代码差不多,所以就放在一起写了. 因为SPFA是Dijkstra的优化,所以我想来讲讲Dijkstra. 什么是Dijkstra Dijkstra是一种求单源最短路的基础算法,时间复杂度在不加堆优化的情况下是o(n^2)的,加了堆优化就能简化到o(nlogn),而且算法稳定性很强(从这点上来说比SPFA好多了,具体怎么好下面再讲),基础思路如下: 首先,把所有点到源的距离设为最大,然后把源加入队列,接着…
P3371 [模板]单源最短路径(弱化版) 题目背景 本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通过,如有需要请移步 P4779. 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三个整数Fi.Gi.Wi,分别表示第i条有向边的出发点.目标点和长度. 输出格式: 一行,包含N个用空格分隔的整数,其中第i个整数表示从点S出发到点i…
关于模板什么的还有算法的具体介绍 戳我 这里我们只做所有最短路的具体分析. 那么同是求解最短路,这些算法到底有什么区别和联系: 对于BFS来说,他没有松弛操作,他的理论思想是从每一点做树形便利,那么时间复杂度绝对是在大型图中难以接受的,所以BFS题目设计很精巧,数据限制,更重要的是他可以处理一些条件很麻烦的联通情况,比如在途中,每步长相同求到达某一地的时间,那么我们要用最短路,就需要建图,但是借助BFS就不需要建图,这么麻烦的事情了. 对于其他最短路,核心思想是松弛,那么先说Floyd,其核心思…