随笔分类 -  专业

摘要:P1194 买礼物 洛谷题目链接 解题思路 这个题目是一个最小生成树或者说是贪心的题目,在这里我们把买的东西定义成顶点,边是优惠的价格 那么我们只要把每一个顶点连接起来可以了,但要注意优惠的价格​ 可能大于A,因此我们要比较A的价格和优惠的价格谁的花费少 接下来就是最小生成树的算法了 代码实现 #d 阅读全文
posted @ 2024-02-05 22:49 lwj1239 阅读(13) 评论(0) 推荐(0)
摘要:矩阵乘法两个矩阵要想相乘必须一个矩阵的行等于另一个矩阵的列 矩阵乘法的性质:单位矩阵 * 矩阵 = 原矩阵 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #incl 阅读全文
posted @ 2024-02-04 22:46 lwj1239 阅读(17) 评论(0) 推荐(0)
摘要:P1160 队列安排 洛谷题目链接 解题思路 首先因为要不停插入和删除一个数,所以自就要想到链表用链表来组织数据,因为链表适合频繁的插入和删除操作。 因为不是在一个固定的位置中操作所以链表删除和插入都需要O(n)的时间复杂度,但如果我们可以直接知道要插入和删除的位置,就可以实现O(1)了。 那么我们 阅读全文
posted @ 2024-02-01 21:54 lwj1239 阅读(24) 评论(0) 推荐(0)
摘要:函数 python的特性之一:函数可以有多个返回值 def divide_exact(n, d): return n // d, n % d >>>a, b = divide_exact(2013, 10) >>>a >>>201 >>>b >>>3 在定义函数时可以给参数默认值,也就是如果参数没有 阅读全文
posted @ 2024-01-31 21:40 lwj1239 阅读(13) 评论(0) 推荐(0)
摘要:对顶堆是由一个大顶堆和一个小顶堆组成的数据结构,用来处理动态求解一个序列中第k大或者第k小的数据结构。其中大顶堆在小顶堆的下面,为什么这样设计呢? 因为如果小顶堆的堆顶大于大顶堆的堆顶,那么对于小顶堆中的所有元素就大于大顶堆中的所有元素了。 原理很简单:根据数学中不等式的传递原理,假如一个集合A中的 阅读全文
posted @ 2024-01-30 22:01 lwj1239 阅读(145) 评论(0) 推荐(0)
摘要:**运算符是次方 //是向下取整的除法 /是除法但不是取整的除法 函数是一种抽象的东西,可以用来表达很多东西 def 函数名(形式参数):这个分号不能少,就跟大括号一样 函数主体 return 返回表达式 def square(squrae) return squre * squre 这个函数体现了 阅读全文
posted @ 2024-01-28 23:28 lwj1239 阅读(8) 评论(0) 推荐(0)
摘要:A*算法可视化视频和算法解释链接 A*算法是求解一个点到另一个点的最短路径,是针对点到点的最短路径算法。 A*算法是对bfs的改进,当求解一个源点到目标点的最短距离时,bfs会进行许多不必要的搜索,大大浪费了空间和效率,因此诞生了A*算法。 A*算法是一个启发式的搜索算法,它其实和迪杰斯特拉算法关系 阅读全文
posted @ 2024-01-26 16:39 lwj1239 阅读(68) 评论(0) 推荐(0)
摘要:单源最短路径是求解给定一个起点到其他所有的点的最短距离。 适用的范围:有向图、边的权值没有负数 洛谷测试链接 代码实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> 阅读全文
posted @ 2024-01-25 19:55 lwj1239 阅读(27) 评论(0) 推荐(0)
摘要:生成树是指无向图中连通且n个顶点n - 1条边的树。最小生成树就是构造连通图的最小代价的生成树。 最小瓶颈树就是在树上最大的边权值在所有生成树中最小。那么有一个定理,最小生成树就是最小瓶颈树,但最小瓶颈树不一定是最小生成树。 解决最小生成树有两种算法分别为:Prim(不常用)和Kruskal(常用) 阅读全文
posted @ 2024-01-24 10:04 lwj1239 阅读(59) 评论(0) 推荐(0)
摘要:并查集是一种集合结构,用来处理集合的合并和查询问题。 主要有两个函数:合并和查询 合并函数表示合并两个不同的集合 查询表示当前元素属于那个集合 逻辑结构是单链表的结构,每个节点向上指向一个属于的集合的代表元素,这个集合的代表元素的next指向它自己成环,表示这个集合的代表元素就是这个有环的节点 牛客 阅读全文
posted @ 2024-01-23 17:16 lwj1239 阅读(48) 评论(0) 推荐(0)
摘要:图分为有向图和无向图。 图的存储:邻接矩阵,邻接表,链式前向星。 图的拓扑排序的前提:有向、无环 那么拓扑排序还可以判断一个有向图有没有环 力扣测试链接 /** * Note: The returned array must be malloced, assume caller calls free 阅读全文
posted @ 2024-01-22 22:43 lwj1239 阅读(24) 评论(0) 推荐(0)
摘要:单调栈是一种栈,但栈里面的元素是具有单调性的,所以被称为单调栈 单调栈解决最经典的问题是每个位置都求 当前位置左边最近且小于(大于)当前位置的元素的位置 当前位置右边最近且小于(大于)当前位置的元素的位置 单调栈模板 #define _CRT_SECURE_NO_WARNINGS #include 阅读全文
posted @ 2024-01-20 15:42 lwj1239 阅读(22) 评论(0) 推荐(0)
摘要:字典树是一种树形结构,节点存储的不是完整的字符串而是前缀字符。 字典树的优点:因为通过前缀字符来选择树上的分支,所以可以节省时间 字典树的缺点:比较浪费空间,与总字符数量有关 字典树的根节点不存储字符。 用动态分配空间实现(常见) #define _CRT_SECURE_NO_WARNINGS #i 阅读全文
posted @ 2024-01-19 14:52 lwj1239 阅读(53) 评论(0) 推荐(0)
摘要:同余原理的背景 在写一些题目的时候有些问题说答案可能很大要求对最终的答案取模,这样可以保证答案在一个有效的范围内。 加法同余原理 (a + b) % m的值等于 ((a % m) + (b % m)) % m这个就是加法的同余原理。 乘法同余原理 (a * b) % m的值等于 ((a % m) * 阅读全文
posted @ 2024-01-07 20:33 lwj1239 阅读(153) 评论(0) 推荐(0)
摘要:解题思路 用三个变量来描述皇后摆放的位置 对于列来说,用一个变量的32位来表示皇后放放在了那些列 对于右上到左下对角线,也用一个变量的位信息表示 对于左上到右下对角线,也用一个变量的位信息表示 列皇后所在的位置就是直接把放皇后的位设置成1 右上到左下对角线就是上一个限制,加上当前决定放皇后的位置,右 阅读全文
posted @ 2024-01-07 19:57 lwj1239 阅读(46) 评论(0) 推荐(0)
摘要:二叉树层序遍历 解题思路 准备一个队列开始bfs,但题目还要求把相同层的节点放在一起,所以我们可以用另一种bfs在树上,收集节点 代码实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct 阅读全文
posted @ 2024-01-04 09:18 lwj1239 阅读(13) 评论(0) 推荐(0)
摘要:相交链表 力扣题目链接 解题思路 如果两个单链表有相交,那么它们的最后一个节点的地址必定相等,如果两个单链表不相交,那么它们的最后一个节点的地址不相等。 那么想要求出第一个相交节点,只要两个链表的长度相等,然后在同时往后走,那么它们必定会在第一个相交节点相遇。 图片解析 通过这一张图片我们可以看到单 阅读全文
posted @ 2023-12-31 23:22 lwj1239 阅读(31) 评论(0) 推荐(0)
摘要:数组中只有一个数出现次数少于m次,其他数都出现了m次,求出现次数少于m次的数 解题思路 把所有数当作一个巨大的二进制,那么出现m次的数必定在它们在的位置出现了m的倍数次,而少于m次的必定没有在一些位置出现m次,所有只要不是m的倍数次的数,那么它一定属于少于出现m次的数之中。 int f(int a[ 阅读全文
posted @ 2023-12-21 23:02 lwj1239 阅读(44) 评论(0) 推荐(0)
摘要:不用比较和判断得到两个数中的最大值 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <time.h> #incl 阅读全文
posted @ 2023-12-20 20:42 lwj1239 阅读(32) 评论(0) 推荐(0)
摘要:稳定性 指拍完序之后之前在数组中的相对次序是否改变了。 基于桶思想的排序都是有稳定性的,如果数据小于64可以直接用插入排序,timsort用的就是这种。 阅读全文
posted @ 2023-12-20 19:06 lwj1239 阅读(9) 评论(0) 推荐(0)