- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 【数据结构#5】树?看这个就够了!
从已有印象认识了树,我们也要从概念上认识树,以便对树的后续研究。树是一种非线性结构,是一个递归的结构,是由有限个节点组成的非空集合。由于结构像一颗倒置的树,所有被称为树。树有一个特殊节点,称为根节点,没有前驱,可以有多个后继;除了根节点,其他所有节点往下都可以被看作一颗子树,这些节点都是对应子树的根节点,这些节点可以有多个后继,但有且只有一个前驱。(换句话说,除了根节点,其他节点都有且仅有一个父节点, 因此,一颗有N个节点的树,一共有N-1条边。
2025-09-13 22:55:57
1189
10
原创 LaTeX 多文件编译权威教程:从入门到精通
LaTeX 多文件编译摘要本教程系统讲解LaTeX多文件编译的专业工作流,适用于论文、书籍等大型文档。通过模块化拆分(主文件、章节文件、导言区)提升可维护性,对比\input与\include的使用场景,并给出VS Code的高效配置方案。核心优势包括:结构清晰:独立文件管理章节/附录编译高效:支持部分编译协作友好:降低版本冲突风险配置优化:提供LaTeX Workshop的稳定编译方案附项目目录模板与常见问题解答,帮助用户从单一文件过渡到标准化多文件工程。
2025-08-24 00:10:06
1045
7
原创 【数据结构#4】栈和队列?看这个就够了
这篇博客文章详细讲解了栈和队列这两种基础数据结构及其实际应用。文章首先介绍了栈的基本概念(FILO/LIFO特性)、结构操作(压栈、出栈)以及实现方式(推荐使用数组)。随后通过经典算法题(如括号匹配、表达式求值)展示栈的应用,重点讲解了中缀、前缀、后缀表达式的转换和求值方法,包括双栈法和调度场算法。第二部分讲解了队列(FIFO特性)的实现方式(链表和数组),比较了各自的优缺点,并提供了基于链表的队列实现代码。最后通过算法题展示了如何用栈实现队列、用队列实现栈,以及循环队列的设计方法。文章强调数据结构核心
2025-08-19 15:54:03
761
4
原创 2.4 双向链表
本文介绍了带头双向循环链表的数据结构及其基本操作。与单链表相比,双向链表通过增加前驱指针实现双向访问,结构上包含数据区、前驱指针和后继指针。文章详细讲解了初始化、插入(尾插和头插)、删除、查找等操作的实现方法,重点分析了指针调整的顺序和注意事项。通过代码示例展示了双向链表在操作上的优势:虽然结构定义更复杂,但多数操作的时间复杂度为O(1),体现了"空间换时间"的设计思想。这种时空权衡在数据结构学习中具有重要意义,为后续更复杂的数据结构学习奠定了基础。
2025-08-17 20:05:30
1000
4
原创 2.1顺序表
通常的结构定义包括,元素数量,表的容量,数据存储区,具体看 代码实现。类型指针移动方式主要应用场景关键优势典型例题快慢指针同向,但速度不同1. 数组原地修改(删除/去重)2. 链表环检测、找中点、找倒数第k个节点通过一个slow指针维护一个处理过的子数组/子链表,fast指针负责探索左右指针反向(相向移动)1. 在有序数组中查找数对2. 翻转数组/字符串3. 寻找最大面积(如盛水容器)利用序列的有序性或对称性,在 O(N) 时间内完成对所有可能组合的搜索。
2025-07-10 14:18:30
805
原创 1.1 时间复杂度
渐进符号是用于描述函数增长率的数学工具。以下是五个核心的渐进符号。IMPORTANT] 核心定义设f(n)和g(n)是定义在自然数集上的非负函数。符号名称数学定义直观解释 (f(n) 与 g(n) 的关系)O(g(n))大O符号(Big O)存在常数c>0和n₀,使得对所有n ≥ n₀,有。f(n)的增长不快于g(n)(渐进上界)Ω(g(n))大Ω符号存在常数c>0和n₀,使得对所有n ≥ n₀,有。f(n)的增长不慢于g(n)(渐进下界)Θ(g(n))大Θ符号且。f(n)的增长速度。
2025-07-10 14:13:24
953
原创 [Tutorial]Git命令行从入门到精通
Git是一种工具,用于跟踪文件和项目随时间发生的变化。你可以记录项目的历史版本,并在需要时回滚到之前的某个状态。这对于个人项目和团队协作都至关重要。与集中式VCS(如SVN)不同,Git是分布式的。这意味着每个开发者都拥有项目的完整副本,包括完整的历史记录。这带来了几个优势:大多数操作(如提交、查看历史、创建分支)都在本地进行,无需网络连接。可以在没有网络的情况下进行大部分工作。每个克隆都是一个完整的备份。Git将数据视为一系列文件系统快照。
2025-06-05 18:27:52
893
原创 【题解】 Education Codeforces Round 179(Rated for Div.2)
大体上是比较简单的5题加2道难题,只要你敢猜,就很简单,但是笔者是小白,不太能适应这种“手速场”,所以昨晚战绩很惨的😭。
2025-06-04 11:59:54
1125
4
原创 【题解】2025山东省赛The 15th Shandong CCPC Provincial Collegiate Programming Contest
2025ICPC山东省赛题解
2025-05-29 20:14:54
2547
4
原创 《算法竞赛博弈五讲》
本文介绍了五种经典博弈模型及其必胜策略。首先讲解了组合博弈的基本概念和必胜态/必败态判定原则。然后分别阐述了巴什博弈(一堆物品取1-m个)、威佐夫博弈(两堆物品取任意或相同数量)、尼姆博弈(多堆物品异或判断)、斐波那契博弈(取物品数受前次限制)和公平组合博弈(ICG)的规则和必胜策略。重点分析了各博弈的状态转移方式和数学规律,如巴什博弈的模数判断、威佐夫博弈的黄金分割率构造等,为读者提供了解决博弈问题的基本思路和方法论。
2025-05-24 18:50:19
700
2
原创 Codeforces Round 1011题解
文章摘要:本文介绍了四个编程问题的解题思路和代码实现。A题涉及字符串操作,判断是否能在k次操作内使字符串字典序小于其反转;B题通过MEX操作将数组元素变为0,输出操作步骤;C题构造k使得(x+k)+(y+k)等于(x+k)异或(y+k);D题在n分钟内选择寿司以最大化美味值,使用贪心算法解决。每个问题都提供了详细的思路和代码实现,展示了如何通过逻辑分析和算法设计解决复杂的编程问题。
2025-05-21 16:58:08
856
4
原创 变参函数Variadic Functions
变参函数是指可以接受可变数量参数的函数。在 C 语言中,变参函数通过<stdarg.h>头文件提供的宏来实现。常见的变参函数包括printf和scanf。使用省略号...表示可变参数。使用<stdarg.h>中的宏来访问可变参数。变参函数通过<stdarg.h>提供的宏实现。使用va_listva_startva_arg和va_end来访问可变参数。必须至少有一个固定参数,用于确定可变参数的数量或类型。变参函数在格式化输入输出和自定义工具函数中非常有用。
2025-03-29 10:41:48
496
原创 HDU我爱记单词自动答题的python程序实现
简单介绍了HDU我爱记单词脚本的实现原理,展示并解释了代码,实际上,这个代码是删减后的基本版本,一些拓展的功能并没有展示 ,需要完全版,请私信。
2024-10-27 19:49:55
2384
4
原创 猜数字游戏的生成
电脑随机生成一个1-100之间的数字,玩家猜测数字,猜大了或者猜小了都会告诉你,直到你猜对了,就会恭喜你,结束游戏,提供再来一次的功能。
2024-08-20 22:43:21
1846
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅