自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 算竞常用STL cpp

C++标准模板库(STL)是一个包含常用数据结构与算法模板的C++软件库,主要由算法、容器、仿函数和迭代器四个组件构成。STL能简化代码和调试,但效率较低。常用容器包括顺序容器(vector)、关联容器(set/map)、容器适配器(stack/queue/priority_queue)等。vector类似可变长度数组,提供push_back、pop_back等方法;stack和queue分别实现先进后出和先进先出结构;priority_queue基于二叉堆实现;set提供元素去重和有序存储;map实现键值

2026-03-30 22:27:04 424

原创 搜索算法 cpp

本文介绍了搜索算法的基本概念与实现方法。搜索是通过穷举所有可能情况来寻找最优解或统计合法解数量的方法,主要包括深度优先搜索(DFS)和宽度优先搜索(BFS)。文章重点讲解了DFS的实现,包括递归枚举、回溯剪枝等技术,并通过三个典型例题(枚举子集、组合型枚举和选数问题)展示了DFS的具体应用。其中强调了剪枝优化的重要性,介绍了等效冗余排除、可行性剪枝、最优性剪枝和搜索顺序优化等常见剪枝策略。这些方法能有效减少搜索空间,提高算法效率。文章通过代码示例和决策树图示,直观展现了搜索算法的实现过程和优化思路。

2026-03-29 19:07:42 346

原创 分治算法 cpp

分治算法通过"分而治之"策略将复杂问题分解为可求解的子问题,再合并结果。典型应用包括归并排序和快速排序。以逆序对问题为例,暴力解法O(n²)效率低,而分治解法利用归并排序过程,在合并有序子数组时统计逆序对数量:当左元素>右元素时,左半剩余元素均构成逆序对。该算法时间复杂度为O(nlogn),适用于大规模数据(如洛谷P1908题中n≤5×10⁵的情况)。核心代码通过递归划分区间,并在合并时累加逆序对数,最后输出总和。

2026-03-26 22:40:52 389

原创 递归初阶 cpp

递归基础与汉诺塔问题解析 本文介绍了递归的基本概念和应用方法,并通过汉诺塔问题展示了递归的实际运用。递归的核心思想是"自己调用自己",适用于主问题与子问题处理方式相同的情况。文章强调从宏观角度理解递归,将其视为能完成任务的黑盒,而不必纠结于递归展开细节。通过归并排序示例说明了编写递归函数的三个关键步骤:确定相同子问题、解决单个子问题、设置递归出口。最后以汉诺塔问题为例,展示了如何通过递归实现盘子的移动过程,并提供了完整的C++实现代码。

2026-03-26 21:07:52 321

原创 快速幂 cpp

本文介绍了倍增思想及其在快速幂算法中的应用。通过将指数分解为二进制形式,利用倍增方法将时间复杂度从O(n)优化到O(logn)。文章以洛谷P1226题为例,详细阐述了快速幂的实现原理,包括二进制分解、模运算规律等关键点,并提供了C++代码实现。特别强调了模运算在加减乘除中的不同处理方式,为高效计算大数幂取模问题提供了解决方案。

2026-03-24 12:41:45 147

原创 简单贪心算法 cpp

本文介绍了贪心算法的基本原理和应用实例。贪心算法通过局部最优选择寻求全局最优解,但需要验证策略的正确性。文章以货仓选址和最大子段和两个经典问题为例: 货仓选址问题证明中位数位置能使距离和最小,通过绝对值不等式推导出最优解; 最大子段和问题采用动态累加策略,当和为负时重新开始累加,并通过反证法验证其正确性。 两个案例展示了贪心算法"大胆猜想、严谨验证"的特点,强调在掌握常见策略的同时,要注重数学证明能力的培养。

2026-03-22 21:55:47 536

原创 二分算法 cpp

二分算法的两种模板

2026-03-22 15:24:50 393

原创 双指针算法 cpp

本文介绍了双指针算法在解决"唯一的雪花"问题中的应用。该问题要求找出序列中最长连续无重复元素的子数组长度。文章首先分析了暴力枚举法的时间复杂度问题,进而提出使用同向双指针(滑动窗口)的优化方案。通过维护一个哈希表记录窗口内元素出现次数,实现O(n)时间复杂度的高效解法。文中给出了详细的算法步骤说明和两种代码实现(使用unordered_map和数组),并强调遇到新问题时应该先尝试暴力解法再优化的解题思路。这种算法避免了不必要的枚举过程,将时间复杂度从O(n²)优化到O(n)。

2026-03-19 12:34:10 378

原创 差分算法 cpp

差分算法通过预处理优化区间修改操作,将时间复杂度从O(n)降至O(1)。一维差分通过构造差值数组,利用f[L]+=k和f[R+1]-=k实现区间快速加减。海底高铁问题应用差分统计各路段乘车次数,再比较买票和购卡成本求得最小花费。典型空间换时间策略,需注意操作完成后才能还原数组。差分与前缀和互为逆运算,是优化暴力枚举的有效方法。

2026-03-18 21:27:04 357

原创 前缀和算法 cpp

本文介绍了前缀和算法及其应用。前缀和通过预处理数组,用空间换时间优化区间查询,将时间复杂度降至O(1)。文章首先展示了一维前缀和的模板实现,对比暴力解法和前缀和优化解法;然后以洛谷P1115最大子段和为例,详细说明如何利用前缀和求最大连续子序列和。关键思路是维护前缀和数组,并通过减去前缀最小值来获取局部最大值。代码实现中特别强调了数据范围的处理,使用long long类型防止溢出。前缀和是处理区间问题的有效方法,能显著提升算法效率。

2026-03-18 18:47:24 356

原创 二进制枚举算法 cpp

本文介绍了二进制枚举及其应用。二进制枚举利用数的二进制位0/1表示状态,通过位运算实现高效枚举。在子集问题中,通过遍历所有二进制状态(0~2^n-1),检查每一位是否为1来生成子集。文章还讲解了位运算中的左移(<<)和右移(>>)操作:左移相当于乘以2^n,右移相当于除以2^n。该方法也被应用于"费解的开关"问题,通过枚举第一行的操作状态,推导后续操作步骤,判断是否能在6步内点亮所有灯。二进制枚举结合位运算技巧,为状态空间搜索提供了高效解决方案。

2026-03-18 13:47:19 535

原创 普通枚举算法 cpp

本文介绍了枚举算法的基本概念和应用实例。枚举是一种暴力算法,通过列举所有可能情况来解决问题,需要考虑枚举对象、顺序和方式。文中以三个例题展示了枚举的实际应用:1) 铺地毯问题通过逆序枚举地毯判断覆盖情况;2) 回文日期问题通过枚举月日组合反推年份;3) 扫雷游戏利用枚举确定地雷位置。这些案例展示了枚举在不同场景下的优化思路,如逆序枚举、利用特性减少枚举范围等,为解决类似问题提供了参考方法。

2026-03-17 21:33:18 897

原创 关于高校C语言课程的学习方法

摘要:本文为C语言初学者提供实用学习建议。推荐浙江大学翁恺的C语言网课作为入门选择,建议听到指针部分即可。学习方法包括:1)听网课+敲例题;2)根据考试难度选择刷题策略;3)重视学校作业。可使用AI辅助但不要依赖,推荐使用Dev C++编译器。文末附基础程序框架,强调初学者应避免使用高端编译器,以免影响学习效果。

2026-03-16 20:14:21 379

原创 C++ 万能头

本文详细讲解了 cpp万能头 的内容 使用场景 与利弊

2026-03-16 19:42:47 707

原创 高精度算法 cpp

本文介绍了高精度算法的实现方法,主要解决超大整数运算问题。通过字符串读入数字并逆序存入数组,模拟小学竖式计算过程实现加减乘运算。高精度加法采用逐位相加并处理进位的方式;减法先比较大小,处理借位并消除前导零;乘法则先无进位相乘再统一处理进位。文章提供了洛谷相关题目和完整C++代码实现,包括字符串处理、数组操作和进位处理等关键步骤,适用于处理10^500量级的超大整数运算问题。

2026-03-15 21:27:18 507 1

原创 Java 方法(笔记)

本文概述了Java方法的基本概念和使用要点。方法作为程序的最小执行单元,主要优势在于提高代码复用性和可维护性。文章详细介绍了方法的定义与调用方式,包括无参数方法、带参数方法以及带返回值方法的语法格式和使用注意事项。同时阐述了形参与实参的区别、方法重载的条件(同方法名、不同参数)、基本数据类型与引用数据类型的传递差异,以及方法调用的内存原理(栈内存运行)。最后总结了方法的通用格式和两个关键点:明确返回值类型和参数类型数量。

2026-03-11 20:17:07 504

原创 模拟算法 cpp

本文介绍了两种模拟类编程题的解题思路和代码实现。多项式输出问题要求根据给定系数按特定格式输出多项式,需处理系数符号、指数形式等多种情况。蛇形方阵问题则需按顺时针方向填充数字矩阵,通过方向数组控制填充路径,处理边界条件。两种问题都强调对题目要求的精确模拟和边界条件的细致处理,展示了从问题分析到代码实现的完整解题过程。代码实现均采用C++语言,通过条件判断和循环结构完成相应功能。

2026-03-10 19:12:54 388

原创 Java 数组(笔记)

本文介绍了Java数组的基本概念和使用方法。数组是一种存储同类型数据的容器,定义格式包括数据类型[] 数组名或数据类型 数组名[]。数组初始化分为静态初始化(直接指定元素)和动态初始化(指定长度),并讲解了地址值、索引访问和遍历操作。特别说明了数组越界问题,最后通过一个打乱数组顺序的示例演示了数组操作。文章涵盖了数组的定义、初始化、访问等核心知识点。

2026-03-09 16:54:07 372

原创 Java 循环 高级(笔记)

本文介绍了Java编程中的循环结构、控制语句和随机数生成。详细讲解了for、while、do-while三种无限循环的写法及注意事项,分析了break和continue在循环中的不同作用。同时介绍了Random类的使用方法,包括导包、创建对象和生成指定范围随机数。最后提供了两个实用案例:输出100-200之间的质数,以及通过Random和Scanner实现的猜数字小游戏,展示了这些基础知识的实际应用。

2026-03-09 16:52:47 168

原创 Java 流程控制语句(笔记)

本文介绍了Java中的流程控制语句,主要包括判断语句和循环结构。判断语句部分详细讲解了if语句的三种格式及其执行流程,以及switch语句的用法和注意事项。循环结构部分涵盖了for、while和do...while三种循环的语法格式和执行特点,并比较了它们的使用场景。文章指出除JDK12中switch的新特性外,其他流程控制语句的语法与C/C++一致。这些控制结构是编程中实现条件判断和重复操作的基础工具。

2026-03-08 18:13:25 355

原创 Java 运算符(笔记)

本文系统介绍了Java中的运算符及其使用规则。主要内容包括:1)算术运算符(+、-、*、/、%)的特点及注意事项;2)类型转换(隐式转换和强制转换);3)字符串和字符的+操作区别;4)自增自减、赋值、关系、逻辑运算符的使用;5)短路逻辑运算符的高效特性;6)三元运算符的语法和应用;7)运算符优先级规则。文章通过具体代码示例(如数值拆分、比大小等)演示了运算符的实际应用,并强调小括号优先和避免常见错误(如==与=混淆)。适合Java初学者系统学习运算符知识。

2026-03-06 14:15:36 318

原创 Java基础语法(笔记)

本文介绍了Java编程基础知识点,包括注释(单行//和多行/* */)、关键字(全部小写、高亮标注)、字面量类型(整数、小数、字符等6种)及其书写格式。详细说明了变量定义格式和注意事项,以及8种基本数据类型的取值范围和关键点。同时讲解了标识符的命名规则(硬性要求和软性建议),包括小驼峰和大驼峰命名法。最后介绍了Scanner类的键盘输入方法和IDEA开发环境中的项目层级结构(project→module→package→class)。这些内容为Java初学者提供了必要的基础知识框架。

2026-03-05 17:29:09 295

原创 Markdown 数学公式(LaTeX 语法)

本文总结了LaTeX数学公式的基本语法和排版规范,包括命令、参数、上下标等基础元素,以及行内公式、块级公式和多行对齐公式的编写方法。提供了常用符号速查表(运算符号、希腊字母等)、矩阵与数组的表示方式,并对比了不同平台对LaTeX公式的支持情况。最后列举了常见错误及修正方案,帮助用户避免排版陷阱。全文以表格和示例代码为主,便于快速查阅和实际应用。

2026-03-05 17:28:19 661

原创 Markdown 分割线

Markdown分割线使用指南:支持---、***、___三种标准语法,需≥3个符号且独占一行。关键注意事项包括前后需空行、列表内需缩进、避免与YAML冲突。推荐用于章节过渡(单文档≤3处),平台渲染存在差异(GitHub实线/Notion不支持)。常见问题包括未生效原因检查及自定义样式限制。专业建议是适度使用以增强文档结构清晰度,避免过度分割破坏连贯性。原生语法简洁且兼容性优于HTML的<hr>标签。

2026-03-04 18:02:20 214

原创 Markdown 高级技巧

本文系统介绍了Markdown的高级使用技巧,主要包括:1)HTML元素的兼容使用,如<kbd>、<mark>等标签及其平台差异;2)转义字符的完整用法表及批量处理技巧;3)LaTeX数学公式的语法规范和主流平台支持情况;4)Mermaid和Flowchart.js等可视化图表工具的语法示例和兼容性对比。最后提供了各功能在不同平台(GitHub、Obsidian等)的兼容性总览表,帮助用户根据使用场景选择合适的技术方案。文中强调安全限制、最佳实践和常见避坑指南,具有较强实用价值。

2026-03-04 17:56:02 658

原创 Markdown 表格

本文系统介绍了Markdown表格的语法规则与高级应用技巧。主要内容包括:标准表格语法格式、对齐控制方法、复杂表格处理技巧(内嵌Markdown元素、长文本呈现方案)、表格美化方案(使用emoji/符号和色彩标识),以及专业工作流建议。文章特别强调了表格设计的KISS原则和语义化表达,并提供了HTML表格作为复杂需求的替代方案。最后指出Markdown表格的固有局限(如无法合并单元格)和不同平台的兼容性差异,为读者提供了全面的Markdown表格使用指南。

2026-03-03 18:23:19 401

原创 Markdown 图片

本文详细解析Markdown图片插入的语法规范与实用技巧。核心内容包括基础语法格式、三种路径类型(相对/绝对/网络)的应用场景与优劣对比,以及引用式图片的高级用法。特别强调路径规范、跨平台兼容性处理和常见陷阱规避,如空格转义、中文路径问题等。文章提供专业排版建议,包括目录结构设计、图片存储策略和HTML扩展用法,并给出安全性与性能优化指导。最后总结Markdown图片处理的黄金法则:必须添加替代文字和采用HTTPS协议,确保文档可访问性与专业性。

2026-03-03 18:13:48 183

原创 Markdown 链接

本文详细介绍了Markdown链接的使用方法,包含基础语法、实用协议示例(邮件、电话、网页等)、锚点链接实现文档内跳转的技巧(自动生成与手动创建锚点),以及高阶使用场景和常见问题解决方案。文章还提供了便捷导航技巧和平台兼容性建议,最后附有完整的Markdown相关知识系列链接。特别强调了中文锚点的平台差异处理和特殊字符转义等实用细节。

2026-03-02 15:42:50 316

原创 Java入门(笔记)

介绍了CMD窗口的打开方法和常用命令,包括盘符切换、目录操作等; 讲解了Java开发环境配置,包括JDK安装目录结构、环境变量设置方法; 展示了第一个Java程序"HelloWorld"的编写、编译和运行过程; 解释了Java跨平台原理和JVM作用; 区分了JDK、JRE和JVM的关系,指出开发只需安装JDK即可。全文提供了Windows系统下Java开发环境的详细配置指南和基础操作说明。

2026-03-02 15:28:48 523

原创 Markdown 代码语法

本文详细介绍了Markdown中代码的两种主要语法:行内代码和代码区块。行内代码使用单个反引号包裹短代码片段,并说明如何转义反引号字符;代码区块分为传统缩进式(4空格)和现代围栏式(三反引号),后者支持语法高亮和更好可读性。文章提供了专业建议、常见陷阱及平台兼容性说明,帮助开发者正确使用Markdown代码语法。最后列出了Markdown相关知识的完整学习路径。

2026-03-01 15:35:13 560

原创 Markdown 引用块

Markdown引用语法详解:单级引用使用>加空格开头,支持多级嵌套(>>、>>>)。引用块内可嵌入其他Markdown元素(加粗、列表等)。关键注意:必须保留>后的空格,兼容主流平台但显示效果可能略有差异。适用于语录引用、重点提示等场景,建议每行单独添加>符号以确保格式正确。

2026-03-01 15:11:17 277

原创 Markdown 列表

本文介绍了Markdown列表的基本语法和使用方法。主要内容包括:无序列表的三种标记方式(星号、加号、减号);有序列表的数字编号规则;列表嵌套的实现方式(通过四个空格缩进);GitHub风格的任务列表语法(使用[ ]和[x]表示待办和完成)。文末还提供了Markdown其他相关知识的系列教程链接,涵盖文本格式、标题、引用块、代码语法、链接、图片、表格、高级技巧、分割线以及数学公式等内容。这些教程可帮助读者全面掌握Markdown的各种语法功能。

2026-02-26 17:04:59 49

原创 Markdown 标题

本文介绍了Markdown中两种标题写法:一种是使用=和-标记一二级标题,另一种是用#号表示1-6级标题(注意#号后需加空格)。文末提供了Markdown相关知识的系列教程链接,涵盖文本格式、列表、代码语法、表格等常用功能,以及LaTeX数学公式等高级技巧。这些资源可以帮助用户快速掌握Markdown的各种语法规则。(148字)

2026-02-23 15:49:00 47

原创 Markdown 文本格式

本文介绍了Markdown常用的文本格式化语法:1) 字体样式(粗体、斜体、粗斜体组合);2) 分隔线创建方法;3) 删除线、下划线和文本高亮标记;4) 行内代码标记方式;5) 脚注使用方法。文中提供了各种格式的具体语法示例,并给出了一些使用建议(如推荐使用星号*而非下划线_)。文章还包含指向下一篇关于Markdown标题的链接。

2026-02-23 15:47:07 85

原创 学生选课管理系统(C语言)

本文详细解析了一个完整的C语言学生选课管理系统,系统采用链表数据结构管理用户和课程信息,通过三个核心文件(main.c、file.h、function.h)实现模块化设计。系统支持学生和管理员双角色:学生可浏览课程、选课退课、查看已选课程和修改密码;管理员可增删改查课程及管理用户密码。关键特点包括完善的数据验证机制、二进制文件持久化存储、内存泄漏防护以及友好的命令行界面。代码设计清晰,充分展示了C语言在实际应用开发中的链表操作、文件I/O和内存管理等核心技能

2025-12-21 22:43:51 558

原创 C++学习笔记2

2025-12-07 23:15:06 113

原创 C++学习笔记1

C++学习笔记1

2025-11-30 22:15:00 107

原创 C语言 结构体(教程)

C语言结构体详解

2025-11-10 19:58:07 993

原创 C语言 指针(教程)

C语言指针详解

2025-11-09 19:15:57 1095

原创 C语言入门常见小问题

C语言入门,写代码中常见的小问题。

2025-11-01 15:54:29 645 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除