
最短路
飞翔的哈士奇
帐号已弃更,转Github(DelinQu) — 2021.05
展开
-
最短路Dijkstra
Dijkstra算法在求最单路过程中应用广基本策略设置集合S存放已经访问的节点,然后执行n此下面的两个步骤(1)每次从V-S(未访问节点)中选择与起点s距离最短的一个点u(中介点),访问并加入S访问集合(2)以u为中介点优化从起点s到达的节点v之间的最短距离算法Dijkstra(G,d[],s)//图,最短路径数组d,起点s{ 初始化; for(int i=0;i&l...原创 2019-08-30 10:13:18 · 210 阅读 · 0 评论 -
Emergency
As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the l...原创 2019-08-30 21:19:46 · 139 阅读 · 0 评论 -
Dijkstra+DFS最短路径(例题Travel Plan)
Dijkstra应用时,结合数组pre[]时,可能会因非最优子结构而导致不能得到正确的结果,这里介绍一种更为模板化的方法Dijkstra+DFSDijkstra记录最短路(只考虑距离),然后从这些最短路中选出一条第二标尺最优路径(1) Dijkstra记录最短路(只考虑距离):Dijkstra过程中,用邻接表pre存储父节点,这样就可以得到一张第一标尺最优邻接表当路径可优化时清空pre[v]...原创 2019-09-01 00:13:13 · 720 阅读 · 0 评论 -
Bellman-Ford和SPFA
在处理单源最短路问题时,Dijkstra可以很好处理正权问题但是对于负权问题,则算法失效。而Bellman—Ford既可以处理正权又可以处理负权。BF算法用d[maxn]存放到达各点的最短距离(1)对图进行v-1次如下操作每轮历遍所有的边,对于每条边u->v如果以u为中介点使得d[v]更优,则更新,这样处理v-1次for(int i=0;i<n-1;i++){ fo...原创 2019-09-01 17:06:19 · 369 阅读 · 0 评论 -
Floyd——全源最短路
解决全源最短路问题时,可以采用Floyd算法,解决,对于图G(V,E),求任意两点u,v之间的最短路径长度,时间复杂度O(n^3),限制节点数在200以内,用邻接矩阵十分简洁算法:void Floyd(){ 枚举顶点k [1,n]; 以k作为中介点枚举所有顶点对(i,j),i,j属于[1,n]; 如果dis[i][k]+dis[k][j]<dis[i][j]成立...原创 2019-09-01 21:07:35 · 276 阅读 · 0 评论 -
Dijkstra最优队列优化
在Dijkstra()中,有内外两层循环复杂度是O(v ^ 2 ),当数据规模v大于10000时一般采用(1)最优队列优化,复杂度是nlogn(2)SPAF,复杂度达到KE,()一般当n超过10000都要优化)试题编号: 201703-4试题名称: 地铁修建时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能...原创 2019-09-10 00:02:03 · 386 阅读 · 0 评论 -
CCF201712-4 试题名:行车路线
试题编号:201712-4 试题名称:行车路线 时间限制:1.0s 内存限制:256.0MB 问题描述:问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航。 小芳将可能的道路分为大道和小道。大道比较好走,每走1公里小明会增加1的疲劳度。小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公里小明会增加s2的疲劳度。 例如:有5个路口,1号路口到2号路口为小道...原创 2019-09-13 11:19:15 · 519 阅读 · 0 评论