上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页
摘要: 堆优化版的Dijkstra算法 稀疏图 找最小距离这一步是最慢的,在一堆数中找一个最小的数,所以可以用堆优化,可以变为O(1) 用堆来存储,所有点到起点的最短距离 然后修改其他数的时间复杂度每次是log n,一共修改m次 这里的堆有两种实现方式 1.手写堆:好处:可以时时刻刻保证堆里面只有n个数,支 阅读全文
posted @ 2020-07-25 02:44 kyk333 阅读(251) 评论(0) 推荐(0)
摘要: 稠密图用邻接矩阵 稀疏图用邻接表 最短路问题 只有一个起点是单源 多个起点是多源 n是点的数量,m是边的数量 朴素Dijkstra算法的时间复杂度和边数无关,适合稠密图(边数较多时),m和n ^ 2一个级别时 堆优化版的Dijkstra算法适用于稀疏图,n和m一个级别 SPFA算法是对Bellman 阅读全文
posted @ 2020-07-25 02:43 kyk333 阅读(175) 评论(0) 推荐(0)
摘要: 图的宽搜的一个经典应用就是求拓扑排序 拓扑排序是针对有向图而言,无向图没有拓扑序列 比如这个有向图 图中的边一共是1到2,2到3,1到3,对于每条边都是起点在终点的前面 1 2 3就是一个拓扑序列,都是从前指向后的 并不是所有图都有拓扑序列 只要有一个环,无论如何都不可能有拓扑序列 一个有向无环图, 阅读全文
posted @ 2020-07-25 02:41 kyk333 阅读(2799) 评论(0) 推荐(0)
摘要: 因为这道题的边长为1,所以可以用宽搜 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 100010; 4 int h[N], e[N], ne[N], idx; 5 int d[N]; 6 int n, m; 7 v 阅读全文
posted @ 2020-07-25 02:40 kyk333 阅读(146) 评论(0) 推荐(0)
摘要: 树和图有两种存储方式,树是一种特殊的图,树是无环连通图 图分为有向图和无向图,无向图是一种特殊的有向图 所以就只需要考虑有向图怎样存储 有向图的存储有两大类 第一大类是用得比较少的邻接矩阵,就是开个二维数组g[a][b]存储a到b这条边的信息,这条边有权重就记录权重,没权重就记录这条边是否存在,0或 阅读全文
posted @ 2020-07-25 02:39 kyk333 阅读(165) 评论(0) 推荐(0)
摘要: 1 #include <bits/stdc++.h> 2 using namespace std; 3 //用哈希表来存所有距离 4 int bfs(string start) { 5 string end = "12345678x"; //终止状态 6 queue<string> q; //宽搜的 阅读全文
posted @ 2020-07-16 15:09 kyk333 阅读(175) 评论(0) 推荐(0)
摘要: 所有边的权重都是1时,才可以用BFS求最短路 否则要用专门的最短路算法来求最短路 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef pair<int, int> PII; 4 queue<PII> q; 5 int n, m; 6 阅读全文
posted @ 2020-07-16 13:37 kyk333 阅读(183) 评论(0) 推荐(0)
摘要: 1 #include <bits/stdc++.h> 2 using namespace std; 3 //像全排列那样搜 4 //每一行都必须要放一个皇后也只能放一个皇后 5 //先看第一行皇后可以放在哪一列 6 const int N = 20; 7 char ans[N][N]; 8 bool 阅读全文
posted @ 2020-07-16 13:01 kyk333 阅读(207) 评论(0) 推荐(0)
摘要: DFS需要考虑搜索顺序 这道题的搜索顺序是: 假定一开始有n个空位了 然后从左往右,从第一位开始填 每一次填的时候,要填的数字不能和前面一样 回溯时要记得恢复现场 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 10 阅读全文
posted @ 2020-07-16 12:02 kyk333 阅读(213) 评论(0) 推荐(0)
摘要: 这个方法叫做字符串前缀哈希法- - 先求出来每个前缀的哈希值 问题1:如何来定义某一个前缀的哈希值 把这个字符串看成是一个P进制的数 每一位上的字母的ascii码,就是这一位上的数 最后mod上一个很小的数,就映射到0 ~ Q - 1 这样就可以把一个字符串转换为一个数字 注意事项1: 一般情况下, 阅读全文
posted @ 2020-07-15 13:28 kyk333 阅读(361) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页