上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 18 下一页
摘要: 一、最短路径算法 1.Dijkstra(迪杰特斯拉)也叫作单源最短路径算法 2.Floyd(弗洛伊德)是个多源最短路径算法 二、Dijkstra算法(采用贪心思想) 1.产生 当我们要计算两个确定的点之间的最小成本的时候,我们就能用到这个算法,比如说我们要从长沙去到北京,可以直达,也可以转车,但是你 阅读全文
posted @ 2022-02-01 21:41 scannerkk 阅读(138) 评论(0) 推荐(0)
摘要: 一、Prim算法 Prim算法时间复杂度为O(n ^ 2) Prim算法的具体思路是,每次根据最小那条边的顶点松弛边,然后再根据dis数组继续松弛,一直到n-1条边数完。 优化后的时间复杂度为O(nlogn) 1 #include "bits/stdc++.h" 2 using namespace 阅读全文
posted @ 2022-01-30 14:46 scannerkk 阅读(273) 评论(0) 推荐(0)
摘要: 一、Segment_tree 1.什么是线段树? 其实就是以类似于数组的形式存储了一些有关的信息,比如一段区间的和,一段区间的最大值最小值之类的问题 2.为什么需要线段树呢? 当我们需要查询某个区间的最大值最小值的时候我们需要扫一遍查询的区间,而当我们查询的次数为n次时,时间复杂度趋于O(n^2)。 阅读全文
posted @ 2022-01-28 21:59 scannerkk 阅读(56) 评论(0) 推荐(0)
摘要: 一、题目分析 A.Min Max Swap 题意:给你两个数组,你可以操作任意次,a【i】和b【i】交换,要求你求出a数组最大值和b数组最大值相乘的最小值。 你把较大的放入a数组,然后把较小的放入b数组,这样两个数组的最大值相乘一定是最小值。 代码实现: 1 #include <bits/stdc+ 阅读全文
posted @ 2022-01-28 19:33 scannerkk 阅读(49) 评论(0) 推荐(0)
摘要: 一、邻接表 1.为什么需要邻接表? 答:当遇到的是稀疏图的情况下如果用邻接矩阵去存储的话,时间复杂度会是O(n^2),空间复杂度也会是O(n^2),其实这样是非常划不来的,因为你有很多空间没有用掉,所以就有了邻接表的存储方式 2.邻接表是什么? 答:可以把它当做一个链表来看待,他就是利用指向的形式寻 阅读全文
posted @ 2022-01-28 19:28 scannerkk 阅读(981) 评论(0) 推荐(0)
摘要: 1 #include "bits/stdc++.h" 2 using namespace std; 3 typedef long long ll; 4 inline ll read()//内联函数可以节省调用的开销,而且能够便于编译器和上下文配合做优化 5 { 6 ll s = 0,w = 1; 7 阅读全文
posted @ 2022-01-25 15:26 scannerkk 阅读(95) 评论(0) 推荐(0)
摘要: 一、题目分析 A.Download More RAM 题意是给定你初始内存,和n个软件,每次运行一个软件如果你能成功运行,你就能得到永久的内存,问你最后能得到的RAM最大值为多少 按软件对内存的需求从小到大排个序,这样你能获得的永久内存越多 1 #include "bits/stdc++.h" 2 阅读全文
posted @ 2022-01-23 22:31 scannerkk 阅读(38) 评论(0) 推荐(0)
摘要: 一、AVL树简介 AVL树是一棵自平衡的二叉搜索树,前篇讲过了BST(二叉搜索树),那为什么还需要AVL树呢,因为BST有个缺点,如果我插入的值是单调递增或递减,那么这棵树就会退化成一条链表,有个专业术语也叫作斜树,这会导致原来logn的搜索插入效率变成O(n),为了防止这种退化,就产生了AVL树, 阅读全文
posted @ 2022-01-21 20:07 scannerkk 阅读(815) 评论(0) 推荐(0)
摘要: 一、题目描述 二、题目分析 这个题目挺有意思的,刚开始以为是个并查集的模板题,后面交上去只有36分,仔仔细细看了一下题,发现这并不是双向关系,而并查集是双向的。因此我就想了一个有疑问的想法,在合并祖先的时候,把那些祖先不等于自己的标记一下,最后计算祖先等于自己的或者未被标记的加上去就行了,虽然是10 阅读全文
posted @ 2022-01-20 20:30 scannerkk 阅读(41) 评论(0) 推荐(0)
摘要: 一、题目描述 二、题目分析 如果n个村庄要想通村,而这个公路又是双向的,那么就只需要n-1条边就行了,因此我们只需要解决的问题就是时间最少的问题了,我们只需要按时间进行一个快排就行了,然后判断是否拿到了n-1条边,拿到了就更新ans推出循环就行了,如果修完了m条路都没有n-1条边,那么就不能通车,输 阅读全文
posted @ 2022-01-20 20:18 scannerkk 阅读(109) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 18 下一页