算法
文章平均质量分 90
指北针_N
共同进步,顶峰相见。
展开
-
最短路问题——K短路问题 / 次短路问题
最短路问题——K短路问题 / 次短路问题。最短路问题中的非常著名的Dijkstra算法、Floyd-Warshall算法以及经典的练习题,大家可以去下面的链接看哈。Dijkstra算法、Floyd-Warshall算法。A*算法给定一个图,定义起点𝑠和终点𝑡,以及数字𝑘;求𝑠到𝑡的第𝑘短的路。允许环路。相同长度的不同路径,也被认为是完全不同的。思路:用A*算法求解。把从𝑠到𝑡的路径分为两部分:从𝑠到中间某个原创 2024-04-30 18:30:00 · 770 阅读 · 0 评论 -
复杂的字符串算法——KMP算法
复杂的字符串算法,暴力法,BF暴力,KMP算法模式匹配(Pattern Matching):在一篇长度为𝑛的文本𝑆 中,找某个长度为𝑚 的关键词𝑃。𝑃 可能多次出现,都需要找到。最优的模式匹配算法复杂度:𝑂(𝑚+𝑛),因为至少需要检索文本𝑆的𝑛个字符和关键词𝑃的𝑚个字符。KMP 是一种在任何情况下都能达到𝑂(𝑛+𝑚) 复杂度的算法。用 KMP 算法时,指向𝑆的𝑖指针不会回溯。不回溯的指针、KMP 模板C++代码。原创 2024-04-28 18:00:00 · 937 阅读 · 0 评论 -
最短路算法——Dijkstra(题目练习解析)
Dijkstra(题目练习解析)点击 -> Dijkstra算法详细讲解王国题目描述小明是王国的王子,今天是他登基之日。在即将成为国王之前,老国王给他出了道题,他想要考验小明是否有能力管理国家。题目的内容如下:蓝桥王国一共有N个建筑和M条单向道路,每条道路都连接着两个建筑,每个建筑都有自己编号,分别为 1∼N。(其中皇宫的编号为1)国王想让小明回答从皇宫到每个建筑的最短路径是多少,但紧张的小明此时已经无法思考,请你编写程序帮助小明回答国王的考核。输入描述...原创 2022-04-22 19:45:00 · 2809 阅读 · 0 评论 -
最短路算法——Dijkstra
Dijkstra在大多数最短路径问题中,Dijkstra 算法是最常用、效率最高的。它是一种“单源”最短路径算法,一次计算能得到从一个起点 s 到其他所有点的最短距离长度、最短路径的途径点。一、Dijkstra的算法思想Dijkstra 的模型例如多米诺骨牌,你可以想象下面的场景:在图中所有的边上,排满多米诺骨牌,相当于把骨牌看成图的边。一条边上的多米诺骨牌数量,和边的权值(例如长度或费用)成正比。规定所有骨牌倒下的速度都是一样的。如果在一个结点上推倒骨牌,会导致这个结点上的所有骨牌都往后面原创 2022-04-22 19:45:00 · 3840 阅读 · 0 评论 -
最短路算法——Floyd-Warshall(题目练习解析)
公园观景题目描述小明喜欢观景,于是今天他来到了公园。已知公园有N个景点,景点和景点之间一共有M 条道路。小明有Q 个观景计划,每个计划包含一个起点st和一个终点ed,表示他想从st去到ed。但是小明的体力有限,对于每个计划他想走最少的路完成,你可以帮帮他吗?输入描述输入第一行包含三个正整数N,M,Q第2到M + 1行每行包含三个正整数u,v,w 表示u↔v之间存在一条距离为w的路。第M+2到M + Q-1行每行包含两个正整数st...原创 2022-04-15 16:31:18 · 1925 阅读 · 0 评论 -
最短路算法——Floyd-Warshall
在更多的应用场景中,需要用不同的算法来解决。下表总结了一些经典算法,除了贪心最优搜索之外,其他都是最优性算法,即得到的解是最短路径。表中的 m 是边的数量,n 是点的数量。一、BFSBFS 也是一种很不错的最短路算法。但 BFS 只适合一种场景:任意的相邻两点之间距离相等,一般把这个距离看成 1,称为“1跳”,从起点到终点的路径长度就是多少个“跳数”。在这种场景下,查找一个起点到一个终点的最有短距离,BFS 是最优的最短路径算法,计算复杂度是 O(n),n 是图上点的...原创 2022-04-15 16:37:34 · 6112 阅读 · 0 评论