老套路了。。 /* 给定起点(xs,ys), 终点(xd,yd), 最大旅程距离B 汽车的每公里代价C0 其余交通方式数量T<=100 其余交通方式代价[C1..CT]<=100 车站数量N<=1000 第i个车站的位置(xi,yi),边数li<=100,每条边(j,mj)表示连向第j个车站,交通方 ...
分类:
其他好文 时间:
2020-06-14 00:59:41
阅读次数:
91
Dijkstra也叫迪杰斯特拉,是典型最短路径算法,计算一个起始节点到路径中其他所有节点的最短路径的算法和思想。在一些专业课程中如数据结构,图论,运筹学等都有介绍。其思想是一种基础的求最短路径的算法,通过基础思想的变化可以解决很多复杂问题,如导航线路,动态规划等。 1|0Dijkstra 算法思想介 ...
分类:
编程语言 时间:
2020-06-02 13:13:16
阅读次数:
52
一、算法介绍 迪杰斯特拉(Dijkstra)算法用于计算一个节点到其他所有节点的最短路径。 1、单源 2、贪心算法 3、适用无负权边的情况 二、算法思想 准备2个集合 S 和 U S保存已经计算好的源节点到此节点最短距离 U保存未计算好最短记录的点 每次从U中取出最小的值,放入S中,其他节点根据此节 ...
分类:
编程语言 时间:
2020-05-31 18:19:02
阅读次数:
112
Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra……所以下文#define dijstra dijkstra Dijskra是用来在有向图或者无向图中寻找任意两个点的最小距离的算法。它相较于spfa不会死掉(spfa死了),但是无法处理带负环的图和 ...
分类:
其他好文 时间:
2020-05-14 22:32:12
阅读次数:
91
最近翻看之前写的一些东西,看到了这个。 首先我们先来分析一下 其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。初始时,S中仅含有源。设u是G的某一个顶点,把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组dist ...
分类:
编程语言 时间:
2020-05-12 17:19:47
阅读次数:
91
题意: 给你一个n,然后给你一个n*n的正方形w[i][j],你需要找到一个从(1,1)点走到(n,n)点的最短路径数量。而且这个路径必须按照y=x对称 题解: 我们把左上角的点当作(0,0)点,右下角的点当作(n,n)点 因为路径必须按照y=x堆成,那么我们可以按照y=x这一条线对折,然后正方形就 ...
分类:
其他好文 时间:
2020-05-10 17:29:04
阅读次数:
80
这道题有负权边,本来考虑可以用spfa,但是这个算法被卡了,因此只能转换思路。 我们发现因为负权边是单向的,且没有环,而正权是有环的,这说明这个图是一块一块的,负权边就是联通块和块的,因此这构成一个DAG 我们考虑在块内部使用迪杰斯特拉算法而在块和块之间使用拓扑排序来做 #include<cstdi ...
题意: 给出n个点m条公路k条铁路。 接下来m行 u v w //u->v 距离w 然后k行 v w //1->v 距离w 如果修建了铁路并不影响两点的最短距离,那么修铁路是没必要的 求能删掉多少条铁路 题解: 把公路和铁路放一起构成一个图,然后跑一边最短路。最后如果最短路结果小于铁路的长度,那么这 ...
分类:
其他好文 时间:
2020-05-01 12:19:11
阅读次数:
56
一个图上,有M条边,Z个出发点,Y个终止点。求一条最短路,其中起点是Z中的任意一点,终点是Y中任意一点。 Input 输入数据有多组,输入直到文件结束。 每组的第一行是三个整数M,Z,Y 接着有M行,每行有三个整数a,b,w,表示a,b之间存在一条长度为w的边 (1=<(a,b)<=1000,w原题 ...
分类:
其他好文 时间:
2020-04-02 10:33:23
阅读次数:
75
基本思想: 解法1: 抓住一个关键点:只可以从阵营1到阵营2; 如果是1阵营,则可以到达1或者2阵营; 如果是2阵营,则只可以到达2阵营; 所以在此基础上,进行迪杰斯特拉的优化问题; 解法2: 看一位大佬所给出思想,之前自己想删边,结果失败了。 由于只能从1阵营到2阵营,所以只需要删除从2阵营到1阵 ...
分类:
其他好文 时间:
2020-03-30 14:39:55
阅读次数:
83