
图
文章平均质量分 65
图
山顶夕景
互联网大厂AI算法工程师。实践出真知。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LeetCode79】单词搜索(DFS回溯综合)
1.题目 2.思路 (1)可以复习【1091】三维&二维BFS&复习这篇,在这篇的方向移动处理是设置2个数组(x轴、y轴),也可以换成2维vector数组,也可以vector<pair<int,int>>即对于每个pair对的元素引用是first,second。 【LeetCode5665】从相邻元素对还原数组。 (2)只要有一处返回true,就能说明二维数组中能找到对应的单词; (3)二维visited数组和board数组大小相同(在exist函数里就要设置好大小原创 2021-02-10 23:04:40 · 788 阅读 · 0 评论 -
【1091】三维&二维BFS&复习
1.题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805375457411072 给出一个 2.思路 由于是三维矩阵,需要 3.代码 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<queue> using namespace std; //利用BFS遍历,找到卒中核心块 struct no原创 2021-01-15 21:38:27 · 846 阅读 · 3 评论 -
Floyd算法&Prim算法
一、Floyd算法 解决全源最短路径问题——求任意两点u、v之间的最短路径长度,dis[i][j]表示从顶点i到顶点j的最短距离,伪代码如下: 枚举顶点k 以顶点k作为中介点,枚举所有顶点对i和j 如果dis[i][k]+dis[k][j]<dis[i][j]成立 赋值dis[i][j]=dis[i][k]+dis[k][j] 小栗子 #include<cstdio> #include<algorithm> using namespace std; const i原创 2021-01-21 10:19:07 · 1024 阅读 · 0 评论 -
【1013】Battle Over Cities (求连通分量数)
1.题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805500414115840 给出一个无向图,当删除图中的某个顶点时,将会同时把与之连接的边一起删除,接下来给出k次查询(每次查询给出一个欲删除的顶点编号),求删除该顶点(包括与该结点连接的所有的边也要删除)后需要增加多少条边,才能使图变连通。(k次查询均在原图上进行)。 2.思路 因为是无向图,所以在读入数据时要将两个方向的边都进行存储。 需要添加的边数=删除该点后的连通原创 2021-01-20 00:29:25 · 706 阅读 · 0 评论 -
图-基础总结
一、图的存储 1.邻接矩阵 二维数组G[i][j],若是无向图,则G[i][j]=1表示i和j点之间存在边;若不存在的边可以设边权为0、-1或是一个很大的数。 缺点:邻接矩阵只适用于顶点数不大(不超过1000)。 2.邻接表 顶点数较大(1000以上)的图就用邻接表存储。 Adj[i]存放顶点i的所有【出边】组成的列表。 (1)若邻接表只存放每条边的终点编号(不存放边权),则vector中的元素类型可以直接定义为int型:vector<int> Adj[N]。 (2)如果要添加从1号结点到3号结原创 2021-01-19 17:05:09 · 758 阅读 · 0 评论 -
DFS(二)
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<algorithm> #include<map> #include<vector> #inclu...原创 2020-01-17 15:30:47 · 462 阅读 · 0 评论 -
DFS(一)
使用场景 输入数据:如果是递归数据结构,如单链表,二叉树,集合,则一定可以用DFS;如果是非递归数据结构,如一维数组,二维数组,字符串,图,则概率小一点。 状态转换图:树或图 求解目标:必须要走到最深(如树,必须走到叶结点)才能得到一个解,这种情况适合用DFS 思考的步骤 1.是求路径条数,还是路径本身(或动作序列)? DFS最常见的三个问题,求可行解的总数,求一个可行解,求所有可行解...原创 2020-01-07 00:00:03 · 1066 阅读 · 0 评论 -
Dijkstra模板
//n为顶点数,m为边数,st和ed分别为起点和终点 //G为距离矩阵,cost为花费矩阵 //d[]记录最短距离,minCost记录最短路径上的最小花费 const int MAXV=510;//最大顶点数 const int INF=1000000000;//无穷大 int n,m,st,ed,G[MAXV][MAXV],cost[MAXV][MAXV]; int d[MAXV],min...原创 2020-01-20 22:24:18 · 660 阅读 · 0 评论