摘要: 1. 朴素版Prim算法 跟朴素dijkstra有点像,但是每次更新的是每个点到已收录的点的集合的距离,而不是到起点的距离。 先迭代n次,每次找到距离集合距离最小的点,将其收录、更新res,然后用其更新其余点到集合的距离 代码如下: #include <iostream> #include <cst 阅读全文
posted @ 2022-05-21 11:33 乐池 阅读(31) 评论(0) 推荐(0)
摘要: 1.栈优化 AcWing 1883. 删减 - AcWing 2.并查集 4420. 连通分量 - AcWing题库 1977. 信息中继 - AcWing题库 3.镜子问题 找到镜子的摆法,模拟是否能到达指定点 1986. 镜子 - AcWing题库 模拟路线是否能到达镜子方阵之外1929. 镜子 阅读全文
posted @ 2022-04-26 11:11 乐池 阅读(20) 评论(0) 推荐(0)
摘要: 线段树包含树状数组,树状数组最大的应用是快速的求前缀和 1.树状数组 结尾有几个0就是第几层的数 2.线段树 阅读全文
posted @ 2022-03-17 23:06 乐池 阅读(32) 评论(0) 推荐(0)
摘要: 1.0-1背包问题 f[i][j]表示在前 i 个物品中进行选择,其中物品体积不超过 j 的所有物品的最大的价值,每个f [i][j]可以分为两部分,一是不包含第 i 个物品的选择, 那这种情况下f[i][j]就等于 f[i-1][j];二是包含第 i 个物品的选择,这种情况只有 j > v[i]才 阅读全文
posted @ 2022-03-12 00:51 乐池 阅读(34) 评论(0) 推荐(0)
摘要: 1.迭代 void add(int a , int b , int c) { e[idx] = b , w[idx] = c , ne[idx] = h[a] , h[a] = idx++; } int gcd(int a , int b) { return b ? gcd(b , a%b) : a 阅读全文
posted @ 2022-03-10 14:58 乐池 阅读(73) 评论(0) 推荐(0)
摘要: 1.朴素Dijkstra算法 稠密图用邻接矩阵,稀疏图用邻接表存 1≤m≤10^5,所以显然这是个稠密图,由于图中可能存在重边和自环,于是我们用g[N][N]存储每条边的距离时,先要将其初始化为无穷,然后读取时比较一下其与原数组中的值的大小,取最小值存储。Dijkstra方法中,对于每个数都循环一次 阅读全文
posted @ 2022-03-05 17:56 乐池 阅读(39) 评论(0) 推荐(0)
摘要: 1.dfs n皇后问题 #include <iostream> using namespace std; const int N = 20; int n; char g[N][N]; int col[N] , dg[N] , udg[N];//列,正对角线,斜对角线 void dfs(int u){ 阅读全文
posted @ 2021-12-08 08:33 乐池 阅读(37) 评论(0) 推荐(0)
摘要: #include <iostream> #include <cstring> using namespace std; const int N = 100003; int h[N] , e[N] , ne[N] , idx;//h是数组头,e是存的插的链表的值,ne是其下一个的idx void in 阅读全文
posted @ 2021-12-04 11:17 乐池 阅读(40) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-11-27 19:19 乐池 阅读(235) 评论(0) 推荐(0)
摘要: 1.Trie树 , 高速地存储和查找字符串集合的数据结构 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 1e5+10; int son[N][26] , c 阅读全文
posted @ 2021-11-21 17:12 乐池 阅读(32) 评论(0) 推荐(0)