题意:给一个起点和终点,只有三种走法n+1, n-1, n*2, 求最短需要的步数 解题思路:BFS,用BFS解决无权图的最短路问题。 注:很容易re,我re了10多次,有两个点要注意 1.如果起始点s>=终点e那么,就只能回退,所以step=s-e 2.编号不可能出边界(0, MAXSIZE) ...
分类:
其他好文 时间:
2018-07-11 12:29:08
阅读次数:
162
分层图最短路,就是在分层图上解决最短路问题一般模型为:在一张图上,有k次机会可以通过一条边而不需要计算权值(免费过路),求从起点到终点的最短路线常规思路:想象将一个点拆分为k + 1个点,分别表示到这个点时,免费权消耗了0次,1次,2次......k次这样实际我们可以把这k个点想象成对应dp的不同的 ...
分类:
其他好文 时间:
2018-07-05 23:41:44
阅读次数:
267
参考博客:https://blog.csdn.net/qq_35644234/article/details/60875818 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2544 例题 hdu 2544 解法1.Dijkstra 复杂度为o(n*n ...
分类:
其他好文 时间:
2018-05-27 12:09:23
阅读次数:
187
题意:一辆汽车在一张无向图中开告诉你每个城市加油的费用。每次给q个查询(起点,终点,油箱容量)问你最小花费是多少。 思路:一道Dijkstra状态的题目。在这种最短路问题中一维的dis数组记录的信息往往不能很好的解决问题,所以我们要给dis数组增加维数来使每个状态唯一。这其实就是结合了动态规划的思想 ...
分类:
其他好文 时间:
2018-05-13 23:09:18
阅读次数:
182
题目连接(vj):https://vjudge.net/problem/UVA-658 题意:补丁在修正 bug 时,有时也会引入新的 bug。假定有 n(n≤20)个潜在 bug 和 m(m≤100) 个补丁,每个补丁用两个长度为 n 的字符串表示,其中字符串的每个位置表示一个 bug。第一 个串 ...
分类:
其他好文 时间:
2018-04-24 23:25:07
阅读次数:
356
src: http://acm.hdu.edu.cn/showproblem.php?pid=3001 思路:每个顶点经过最多2次,也就是有0 1 2三种状态!用bit[]存三进制下各位的值(这样dp的状态概念就可以解决最短路问题的许多限制,通过压缩可以保存更多的值~),dp[z][j]表示z状态下 ...
分类:
其他好文 时间:
2018-04-09 21:51:06
阅读次数:
195
自己是真的笨 整整用了10个小时才吃透这个BF的两种优化 题目如下: 很简单的题,就是测试数据n居然有20000; 那么需要考虑的问题就有两个了,一是时间复杂度,二是空间复杂度 一开始上手我用的是floyd 代码如下: #include <iostream> #define max 2001 #de ...
分类:
其他好文 时间:
2018-03-17 16:14:09
阅读次数:
220
迪杰斯特拉算法用于求解单源最短路问题,能求解出从一个点出发到剩余所有节点的最短距离。 原理: 使用贪心选择,将全部节点分为两部分,已经找出最短路径的点和没有为找出最短路径的点,初始情况下源点为唯一一个找出最短距离的点,每次从未找出最短路径的点中选中距离源点最近的点设置为已经找到最短路径的点并记录下相 ...
分类:
编程语言 时间:
2018-03-10 15:51:49
阅读次数:
259
2018-03-06 17:42:02 一、最短路问题 问题描述:在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径。 这条路径就是两点之间的最短路径 (Shortest Path) 第一个顶点为源点 (Source) 最后一个顶点为终点 (Destination) 问题分类: ...
分类:
编程语言 时间:
2018-03-07 20:13:55
阅读次数:
248
该算法思想就是 1)首先找离起点最近的点 2)然后对该点进行标记,并且对与该点相邻的点进行松弛(也就是更新周围点离起点的距离最小值) 3)继续找更新之后的图中离起点最近的未被标记的点 具体的实现方式有两种: 方式一时间复杂度是O(n^2),具体实现方式是通过两个for循环实现(其中内层循环负责找最近 ...
分类:
编程语言 时间:
2018-02-21 15:49:59
阅读次数:
155