11 2018 档案
摘要:这次整理了一下广度优先搜索的框架,以后可以拿来直接用了。TjuOj1140是一个三维的迷宫题,在BFS时我增加了一个控制数组,用来对队列的出队进行控制,确保每次出队的结点均为同一步长的结点,个人认为比较适合这种迷宫搜索题。 BFS部分的代码如下: 题目比较好理解,从S出发找E(但不一定有解),原文如
阅读全文
摘要:这次整理了一下SPFA算法,首先相比Dijkstra算法,SPFA可以处理带有负权变的图。(个人认为原因是SPFA在进行松弛操作时可以对某一条边重复进行松弛,如果存在负权边,在多次松弛某边时可以更新该边。而 Dijkstra 算法如果某一条边松弛后就认为该边已经是该连接点到源点的最短路径了,不会重复
阅读全文
摘要:遇到一道题,简单说就是找一个图的最小生成树,大概有两种常用的算法:Prim算法和Kruskal算法。这里先介绍Prim。随后贴出1924的算法实现代码。 Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但
阅读全文
摘要:做OJ需要用到搜索最短路径的题,于是整理了一下关于图的搜索算法: 图的搜索大致有三种比较常用的算法: 迪杰斯特拉算法(Dijkstra算法) 弗洛伊德算法(Floyd算法) SPFA算法 Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。
阅读全文
摘要:这个题是给树的前序和中序,输出后序。 做法是根据前序找根,根据根在中序中找中序的左右子树,根据左右子树长度找前序的左右子树,依此递归。 做过之后感觉还是比较基础的,废话不多说,上题上代码。 Bob will get a bag as gift from Alice, but Alice don't
阅读全文
摘要:这个题主要考察对树的操作,主要思想是DFS或者BFS,其次是找树的直径方法(既要运用两次BFS/DFS),最后作为小白,还练习了vector的操作。 DFS框架伪码: vector的操作: 大意是给一个树,每个边的权重已知,求树的直径。 After a long time of algorithm
阅读全文

浙公网安备 33010602011771号