图论
糖宋元明清
这个作者很懒,什么都没留下…
展开
-
网络流
网络流建模思路一个医院有 n名医生,现有 k个公共假期需要安排医生值班。每一个公共假期由若干天(假日)组成,第 j个假期包含的假日用 Dj表示,那么需要排班的总假日集合为… 。例如,“五一”假期由5月1日至5月7日一共7个假日组成。“元旦”假期由1月1日至1月3日一共3个假日组成。每名医生 可以值班的假日集合是 Si,Si属于D,。例如,李医生可以值班的假日集合包括“五一”假期中的5月3日、5月4日和“元旦”假期中的1月2日。设计一个排班的方案使得每个假日都有一个医生值班并且满足下面两个条件:1.原创 2020-06-28 15:20:17 · 949 阅读 · 2 评论 -
spfa+多重约束
普通的spfa只是用来求单源最短路(也就是边权和最小),是通过不断松弛边权来求的。但是在一些情况需要求点权和最大或最小的情况(或者是其他的约束条件)我们只需要根据条件加几个约束条件就行以下是例题:L2-001. 紧急救援时间限制:200 ms内存限制:65536 kB代码长度限制:8000 B作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快...原创 2018-05-10 16:59:25 · 243 阅读 · 0 评论 -
图论-最短路总结
一:迪杰斯特拉(Dijkstra)算法 Dijkstra算法是单源最短路算法。他能求出一个点到其他点的最短距离。这个点叫做源点;他的主要思路就是将所有顶点分为两部分,一部分是点集合是Q,剩下部分点集合是P;其中Q集合的点到源点的最短距离已经求出来,P集合是待求到源点最短距离的点集合;Dijkstra就是对这两个集合进行操作。我们假定源点是S.第一步:我们将两个集...原创 2018-09-02 22:20:49 · 280 阅读 · 0 评论 -
图论-最小生成树
最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出; 一:kruskal(克鲁斯卡尔)将图中的每条边按从小到大排个序。然后按这个顺序建个树就是最小生成树。kruskal主要是建树过程中不能出现环,如果加入当前边,会形成环,就放...原创 2018-09-03 23:22:58 · 228 阅读 · 0 评论 -
A*k最短路讲解
A*k最短路讲解在讲解之前你可能需要了解一下 dijstra的堆实现Dijstra求k短路在松弛的过程中如果把每个点都加进优先队列(堆),那么如果有泛化的点p在第t次出队,那么此时就能得到源点到p点的第t短的路。但是这个方法用来求k短路过于慢,所以就有了A*来加速寻找k短路的过程。A*A*本质上就是使用了优先队列的bfs。但是优先队列的优先性由一个确定值与一个估值的和来确定。在这里我们...原创 2019-08-29 14:56:19 · 536 阅读 · 0 评论