搜索、图论
文章平均质量分 73
Jefferson__
这个作者很懒,什么都没留下…
展开
-
存在负权边的单源汇最短路(Ballman-Ford、SPFA)
(一)Ballman-FordBellman-Ford算法是求负权图的单源最短路径的一种算法,效率较低,代码难度小。其原理为连续进行松弛,在每次松弛时吧每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。优点:可以计算有边数限制的最短路问题;但是处理负权图时往往使用SPFA。具体步骤:for(int i = 0; i < n; i ++ ) for(所有边 a, b, w) <-松弛操作 dist[b] = min(dist[b原创 2021-08-31 10:48:01 · 1515 阅读 · 0 评论 -
Dijkstra求最短路
文章目录(一)算法解析(二)模板例题(一)算法解析整体思路: 进行n次迭代(n为点的个数)去确定每个点到起点的最小值,最后输出我们要找的最短距离。按照以上思路,我们发现还需要存储两个变量dist [n] :用于存储每个点到起点的最短距离st[n] : 用于在更新最短距离时,判断当前的点是否确定,是否需要更新每次迭代的过程中,我们都先找到当前未确定的点中距离最短的点int t = -1;for(int j = 1; j <= n; j ++ ) if(!st[j] &a转载 2021-08-29 23:31:49 · 85 阅读 · 0 评论 -
拓扑排序知识点+模板
文章目录知识点题目1题目2知识点定义:拓扑排序是一个有向无环图的所有顶点的线性序列。且该序列满足一下两个条件:每个顶点只出现一次;若存在一条顶点A到顶点B的路径,那么在序列中顶点A在顶点B的前面。算法流程:用队列来实现,初始化将所有入度为0的点加入队列。主要有一下两步循环执行,直到不存在入度为0的点为止。1.选择一个入度为0的顶点,并将他输出。2.删除途中从顶点连出的所有边循环结束,若输出的顶点数小于图中的顶点数,则表示该图存在回路,无法拓扑排序,反之,输出的即为拓扑排序(注:该拓扑原创 2021-08-23 18:27:57 · 173 阅读 · 0 评论 -
欧拉回路详解
文章目录知识点例题知识点欧拉通路和欧拉回路:欧拉通路:对于图G来说,如果存在一条通路包含G的所有边,则该通路称为欧拉通路,也称欧拉路径。欧拉回路:如果欧拉路径是一条回路,那么称其为欧拉回路。欧拉图:含有欧拉回路的图是欧拉图。对有向图G和无向图H:图G存在欧拉路径与欧拉回路的充要条件分别是:欧拉路径:图中所有奇度点的数量为0或2.欧拉回路:图中所有点的度数都是偶数。图H存在欧拉路径和欧拉回路的充要条件分别为:欧拉路径:所有点的入度等于出度或者存在一点出度比入度大1(起点),一点入转载 2021-08-23 16:23:44 · 8812 阅读 · 4 评论 -
ccf-csp 画图
题目描述用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。例如,下图是用 ASCII 字符画出来的 CSPRO 字样。本题要求编程实现一个用 ASCII 字符来画图的程序,支持以下两种操作:画线:给出两个端点的坐标,画一条连接这两个端点的线段。简便起见题目保证要画的每条线段都是水平或者竖直的。水平线段用字符 - 来画,竖直线段用字符 | 来画。如果一条水平线段和一条竖直线段在某个位置相交,则相交位置用字符 + 代替。填充:给出填充的起始位置坐标和需要填原创 2021-08-20 11:13:58 · 286 阅读 · 0 评论 -
bfs常见题型总结
文章目录(一)bfs模板题(二)Flood Fill(三)最短路模型(四)多源bfs(一)bfs模板题题目描述给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。输入格式原创 2021-08-15 14:25:53 · 1045 阅读 · 0 评论 -
POJ-3278 Catch That Cow
问题描述:农夫知道一头牛的位置,想要抓住它。农夫和牛都于数轴上 ,农夫起始位于点 N(0<=N<=100000) ,牛位于点 K(0<=K<=100000) 。农夫有两种移动方式:1、从 X移动到 X-1或X+1 ,每次移动花费一分钟;2、从 X移动到 2*X ,每次移动花费一分钟;假设牛没有意识到农夫的行动,站在原地不动。最少要花多少时间才能抓住牛?输入:一行: 以空格分隔的两个字母:N和K输出:一行: 农夫抓住牛需要的最少时间。输入样例:...原创 2021-03-25 10:54:44 · 106 阅读 · 0 评论