- 博客(65)
- 收藏
- 关注
原创 从二叉树到红黑树
一颗AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树(空树的高度为 -1)。(这个界是由一些研究者得出的,虽然不是最紧的,但提供了一个很好的上界)。AVL树通过旋转操作来确保任何节点的两个子树的高度差(平衡因子)不超过1,从而保持树的高度尽可能低。,因为所有这些操作都需要遍历从根到某个叶子节点的一条路径,而这条路径的长度(即树的高度)是。”的情形(即左-右的情况或右-左的情况),该情况通过稍微复杂些的。”的情况(即左一左的情况或右一右的情况),该情况通过对树的一次。点的两棵子树的高度差2。
2025-02-17 19:15:37
869
原创 vscode 极简Linux下 cmake c++开发环境
安装这三插件vscode安装插件clangd 后报错 无法自动下载服务端1、翻墙后下载2、将文件解压后放入WSL中(文件系统直接和win11互通的好处)3、添加可执行权限4、插件设置将 path 指向bin下的clangd可执行文件注意你这个可执行文件的上级目录应当还包括下载包里的lib,clangd会根据clangd可执行文件做相对目录去寻找头文件等4、设置clangd编译目录打开设置,在设置中输入clang,找到clangd: Arguments点击添加项,并输入参数。
2025-01-13 20:07:29
514
原创 Acwing 基础算法课 数学知识 筛法求欧拉函数
【G09 筛法求欧拉函数】https://www.bilibili.com/video/BV1VP411p7Bs?闫总真是把听者当数学系转cs的来讲,菜逼完全听不懂,只能其他地再搜。互质:两个数互质(也称为互素)是指它们的最大公约数(GCD)为1。:1~n中与n互质的数的个数。
2024-12-30 21:29:08
219
原创 实验12 socket网络编程
2. 编写程序,使用socket网络接口函数,实现同一网段的两台主机的聊天。注:使用多线程,实现实时聊天功能。(使用UDP或TCP方式)1.阅读TCP、UDP数据通信的例子8-2、8-7,理解并运行查看其功能。可以使用shell命令测试服务端代码。
2024-12-18 20:23:51
208
原创 Acwing 基础算法 数学知识 约数
的公约数集合是相同的。所以,它们的最大公约数也必然相等。根据因数唯一分解定理,对于任意一个数,都可以表示为。边界是b等于0,而(a,0) = a。的所有公约数都成立,因此。的公约数,且这种关系对。
2024-12-15 20:41:07
845
原创 Acwing 算法基础课 数学知识 线性筛
的最小质因子,需要构造n后停止循环。如果继续循环用质数表中大于。处被筛去,也只会在这里被筛去。也就是说,每个数都会被它。最小的质因子,在往后的i循环中,当。这句话保证了复杂度。,则构造合数n被筛掉。
2024-12-11 22:20:04
948
原创 AcWing 861. 二分图的最大匹配(匈牙利算法)
二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数。就是从二分图选择尽量多的边,使得二分图左右的点两两匹配。求最多能选几条边,最大能匹配几对。数据保证任意一条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。如果女方有男朋友,看竞争对手有没有备胎,让他选备胎,自己匹配上,互不冲突。中的任意两条边都不依附于同一个顶点,则称。输出一个整数,表示二分图的最大匹配数。给定一个二分图,其中左半部包含。,表示左半部点集中的点。时间复杂度 O(nm)
2024-12-04 16:32:36
369
原创 Acwing 860. 染色法确定二分图
如果发现了奇环,那么就不是二分图,否则是。有这样的结论“由于图中不含有奇数环,所以染色过程中一定没有矛盾" 也就是能染色 == 偶数环 == 二分图。如果染色出现矛盾,矛盾的环中两种颜色交替出现,最后一次染色与第一次染色冲突,则环一定是奇数环。二分图,又称二部图,英文名叫 Bipartite graph。节点由两个集合组成,且两个集合内部没有边的图。换言之,存在一种方案,将节点划分成满足以上性质的两个集合。条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。如果给定图是二分图,则输出。
2024-12-04 13:51:19
1048
原创 Acwing 859. Kruskal算法求最小生成树
给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中 n-1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。环去掉一个边不影响连通性,只要去除环的最大权值的边就可以得到最小生成树,也就是选取环中除最大边外的边。少一个边不影响环原来的连通性,而算法总可以选择环中除权重最大边外的其他边,而环外的边算法总可以选中。在屈婉玲的离散数学中16章末尾有证明。
2024-12-03 15:36:01
432
转载 人生有何意义-胡适
一、一个问题我到北京不到两个月。这一天我在中央公园里吃冰,几位同来的朋友先散了;我独自坐着,翻开几张报纸看看,只见满纸都是讨伐西南和召集新国会的话。我懒得看那些疯话,丢开报纸,抬起头来,看见前面来了一男一女,男的抱着一个小孩子,女的手里牵着一个三四岁的孩子。我觉得那男的好生面善,仔细打量他,见他穿一件很旧的官纱长衫,面上很有老态,背脊微有点弯,因为抱着孩子,更显出曲背的样子。他看见我,也仔细打量。我不敢招呼,他们就过去了。走过去几步,他把小孩子交给那女的,他重又回来,问我道:“你不是小山吗?”我说,“正是
2024-11-29 22:18:59
123
原创 853 有边数限制的最短路(bellman-ford贝尔曼福特算法)
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,。请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离,如果无法从 1 号点走到 n 号点,输出impossible。注意:图中可能。
2024-11-29 16:46:21
328
原创 850 Dijkstra 求最短路 II 稀疏图
接下来 m 行每行包含三个整数 x,y,z 表示存在一条从点 x 到点 y 的有向边,边长为 z。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值。查找,n变成logn,只有将其移出未确定集合时需要花费logn更新小根堆。数据保证:如果最短路存在,则最短路的长度不超过 109。输出一个整数,表示 1 号点到 n 号点的最短距离。图中涉及边长均不小于 0,且不超过 10000。
2024-11-29 16:44:39
319
原创 849 Dijkstra 求最短路 I 稠密图
条边的有向图,图中可能存在重边和自环,所有边权均为正值。,图中涉及边长均不超过 10000。号点的最短距离,如果无法从。如果路径不存在,则输出。
2024-11-29 16:43:44
755
原创 848 有向图的拓扑排序
也就是说每一步操作你访问过的点数都+1那n步之后你就访问了n+1个点,矛盾了。那么把这个图的所有边反过来,就得到了一个有向无环切每个点出度都大于0的图。共一行,如果存在拓扑序列,则输出任意一个合法的拓扑序列即可。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出。从这个图上随便找个点,然后从这个点随便挑一条边往下走走到新的点。假设有一个图有n个点,有向无环且每个点入度都大于0。因为无环,所以你每次走到的点都是之前没有访问过的点。条边的有向图,点的编号是 1 到。若一个由图中所有点构成的序列。
2024-11-29 16:42:59
707
原创 847 图中点的层次
1、本题是图的存储BFSBFSBFS的结合2、图的存储用邻接表3、图的权值是111的时候,重边和环不用考虑。4、所有长度都是111,表示可以用bfsbfsbfs来求最短路,否则应该用迪杰斯特拉等算法来求图中的最短路径。5、bfsbfsbfs需要记录的是出发点到当前点的距离,就是ddd数组,每次ddd要增加111。6、一定要注意数组的初始化!!!!!(1)// 数组的整体初始化为 - 1,这是链表结束循环的边界,缺少会TLETLETL。
2024-11-29 16:41:41
689
原创 844 走迷宫
一个迷宫由一个二维数组表示,其中0表示可以走的路径,1表示墙壁。你需要编写一个程序,从迷宫的入口(左上角)出发,寻找到达出口(右下角)的路径。如果存在多条路径,只需要找到一条即可。如果不存在路径,则输出无法到达出口。输出一个整数,表示从左上角移动至右下角的最小移动次数Yes7。
2024-11-29 16:41:04
266
原创 846 树的重心
给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。
2024-11-29 16:40:31
443
原创 843 n - 皇后问题
n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数n,请你输出所有的满足条件的棋子摆法。输入格式共一行,包含整数n。输出格式每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。其中”.”表示某一个位置的方格状态为空,”Q”表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。输出方案的顺序任意,只要不重复且没有遗漏即可。数据范围1≤n≤94。
2024-11-29 16:38:36
261
原创 842 排列数字(全排列)
每一层数字都进行迭代,同时保证递归回来恢复现场。现在,请你按照字典序将所有的排列方法输出。按字典序输出所有排列方案,每个方案占一行。排成一排,将会有很多种排列方法。共一行,包含一个整数 n。给定一个整数 ,将数字。
2024-11-29 16:37:11
181
原创 win11 CH340驱动安装正常但是串口连接显示“连到系统的设备无法发挥作用”的解决
沁恒官网的最新版不行,需要将驱动降到2014版本的https://pan.baidu.com/s/12RCvu6aG20Ovcqw0Uz8-FA?
2024-11-28 20:51:09
484
原创 【TQ2440】02 串口连接进入u-boot
需要收到的板子已经烧写好系统或u-boot,看开机液晶屏底下的四个LED灯有没有亮黄绿色,没有就是还没烧写u-boot,需要先使用Jlink烧写u-boot。进入 uboot 的下载模式,如果从 Nor Flash 启动默认的就是进入 uboot 的下载模式,如果从 Nand Flash。启动,我们需要在开机前,按住 PC 空格键,然后开机。1、将板子模式拨到NOR,PC和板子接好串口线。打开PC的设备管理器,可以看到串口设备。连接串口,选择对应串口端口,波特率选择。3、将板子开机、可以看见。
2024-11-27 21:08:57
369
原创 【操作系统】2.3_11_ 哲学家进餐问题 的 代码实现
这一整个过程进行互斥操作,保证总有一个进程完整的拿到两个筷子。个筷子资源余留,可以让1个进程拿到两支筷子,不会死锁。个进程并发争抢资源,必有。的信号量,保证最多只有。n个哲学家,n个筷子。
2024-11-26 16:15:02
242
原创 【TQ2440】01 ADS1.2 安装
ADS1.2安装包链接:https://pan.baidu.com/s/1BBJb4jYKLOYXIMD86WCycA?TQ2440是一款基于Samsung S3C2440处理器的ARM9开发板,广泛应用于嵌入式系统学习和开发。5、然后会弹出激活程序窗口,没弹出的到安装包目录去启动。然后next到finish就安装完成了。3、自定义安装路径 - Browse。7、Browse选择授权文件,选择。6、选择安装授权文件,下一步。1、点击Setup.exe。
2024-11-19 20:14:27
205
原创 【系统编程】实验9 信号量进行进程间通信 - 多生产消费者模型
这里为了简化使用线程共享全局变量不使用进程。按如下描述,使用信号量完成该问题。父母:是否可以放水果,s3=3。可以看到篮子里最多只有三个水果。儿子:是否有苹果,s1=0。女儿:是否有桔子,s2=0。父亲 母亲 儿子 女儿。
2024-11-18 11:34:34
281
原创 【系统编程】实验8 信号量与共享内存 - 文件拷贝 - 生产与消费者模型
发送进程接受用户提供的文件名字,将文件中的内容复制,通过共享内存传递给接受进程,接受进程读取内容,并存储到参数提供的文件中。send.c和receive.c编译后按如下格式运行。进行数据通信的时候,需要使用。没有亲缘关系的两个进程通过。保证两个进程的读写同步。2、执行 snd.cpp。3、执行 rcv.cpp。本题是单生产消费者模型。
2024-11-17 20:23:10
241
原创 【LinuxC编程】07 - 线程同步
同步概念所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一致。等等而,编程中、通信中所说的同步与生活中大家印象中的同步概念略有差异。“同”字应是指协同、协助、互相配合。主旨在协同步调,按预定的先后次序运行。
2024-11-11 20:51:17
851
原创 【LinuxC编程】06 - 守护进程,线程
LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下)进程:独立地址空间,拥有PCB线程:有独立的PCB,但没有独立的地址空间(共享)区别:在于是否共享地址空间。独居(进程);合租(线程)。Linux下:线程:最小的执行单位进程:最小分配资源单位,可看成是只有一个线程的进程。
2024-11-09 18:31:16
1019
原创 【LinuxC编程】05 - 信号
【黑马程序员-Linux系统编程】https://www.bilibili.com/video/BV1KE411q7ee?
2024-11-03 20:33:04
713
原创 Windows 下基于 CLion 配置 Linux 项目开发环境
【Windows 下基于 CLion 配置 Linux 项目开发环境 【C/C++/Linux】】
2024-11-02 15:51:05
313
原创 【LinuxC编程】04 - 进程间通信
Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。在进程间完成数据传递需要借助操作系统提供特殊的方法,如:文件、管道、信号、共享内存、消息队列、套接字、命名管道等。随着计算机的蓬勃发展,一些方
2024-10-31 13:25:47
326
原创 【acwing算法基础课笔记】02 - 数据结构 - Hash & 常用STL
概念,也被称为散列表,是一种通过哈希函数将键(Key)映射到表中一个位置以便快速访问记录的数据结构。hash函数假设hash函数是 x mod 3,那么h(11) = 2, 11放到下标为2的位置。note] 待证mod后的值一半取成一个质数,并且这个指数要离2的整次幂尽可能的远,使冲突概率最小hash表长度要小于值域,可能发生冲突,解决冲突方法有拉链法和开放寻址法。
2024-10-27 19:14:48
749
原创 【acwing算法基础课笔记】02 - 数据结构 - KMP&前缀匹配
在《算法导论》中,BF算法(Brute Force,暴力匹配算法)是一种基本的字符串匹配算法,其核心思想是逐个比较模式串中的字符与主串中相应位置的字符,直到找到匹配的子串或遍历完整个主串。
2024-10-23 12:25:54
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人