多源bfs 1.算法分析 多源bfs就是一开始有很多的源头,不只一个源点。处理的方法:一开始直接把所有源点放入队列;或者建立一个虚拟源点,虚拟源点到每个源点的距离为0 2.例题 acwing173矩阵距离 给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为: d ...
分类:
其他好文 时间:
2020-07-27 13:41:08
阅读次数:
59
双端队列广搜 1. 算法分析 双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队列。而当边权只有0和1时,当处理的边权为0,那么更新完仍然为最小值,直接放入队头;为1则插入队尾。 ...
分类:
其他好文 时间:
2020-07-27 13:40:39
阅读次数:
68
双向bfs和双向dfs 1. 算法分析 当进行的变换是可逆的时候,且规定步数的上限时,可以使用双向dfs或双向bfs从源点和终点一起搜索。这样可以把时间从O(n)->O(n/2) 如果dfs调栈超过1e5时,那么考虑双向bfs 写法技巧 双向dfs 第一个dfs先搜索前一半的空间,打表存储所有可达的 ...
分类:
其他好文 时间:
2020-07-27 13:39:54
阅读次数:
66
bfs最短路与最小步数模型 1. 算法分析 最短路:从A点走到B点的最小距离 最小步数:从状态A到状态B的最小变化数,本质就是最短路 2. 例题 2.1 最短路 acwing1076迷宫问题 给定N*N数组,每个元素只有0和1,求从(0, 0)走到(n - 1, n - 1)的最短路,输出其路径 # ...
分类:
其他好文 时间:
2020-07-27 13:39:28
阅读次数:
64
floodfill 1.算法分析 floodfill就是求出连通块的算法,一般可以采用dfs或者bfs,但是dfs容易爆栈,故而采用bfs为佳 2. 例题 acwing1097池塘计数 一块N * M的土地,其中有'W'和'.'组成,'.'为土地,'W'为水,水的八个方向可以连在一起形成池塘,问一块 ...
分类:
其他好文 时间:
2020-07-27 13:37:49
阅读次数:
56
题目链接: http://poj.org/problem?id=2253 题意: 找从起点到终点所有可能的路径中的最大边权的最小值 思路: 最短路变形 将松弛操作判断条件 dist[v]>dist[u]+w[u][v] 改为 dist[v]>max(dist[u],w[u][v]) 更新操作 dis ...
分类:
其他好文 时间:
2020-07-27 09:48:03
阅读次数:
79
给一个序列,我们使用冒泡排序法对它进行排序。请输出在排序过程中会进行多少次交换。 参考大佬:https://www.cnblogs.com/shenshuyang/archive/2012/07/14/2591859.html #define _CRT_SECURE_NO_WARNINGS #inc ...
分类:
编程语言 时间:
2020-07-27 09:39:54
阅读次数:
68
有一个正方形游戏背包,大小为S*S(1<=S<=1024)。含有很多小格子,小格子编号从0开始,直到S-1。每一个格子里有一定数量的物品,同时每一个格子的物品里的数目也是不断变化的,现在要一边进行修改某些单位格子内的物品的数目,同时也要询问某些区域的手机数目。 数据保证每个格子内物品数目一直在int ...
分类:
编程语言 时间:
2020-07-26 23:01:45
阅读次数:
78
102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] # ...
分类:
其他好文 时间:
2020-07-26 15:44:06
阅读次数:
63
MPI Maelstrom POJ - 1502 实验室有很多台计算机,由于每个人计算机的性能不同,导致计算机之间发送信息的速度不同,所以花费时间不同。 消息从第一台电脑发送到第二台电脑后,这两台电脑能再向其他电脑发送消息,就是一种类似二叉树的结构。 当然并不是真正的二叉树——我们的计算机有一些特殊 ...
分类:
其他好文 时间:
2020-07-26 15:20:07
阅读次数:
75