自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【洛谷】从记忆化搜索到动态规划 状态表示 + 转移方程 + 空间优化全攻略

本文从动态规划的本质出发,用斐波那契数列、跳台阶、数字三角形三道经典例题,由浅入深讲解记忆化搜索与递推 DP 的关系,详细介绍状态表示、状态转移方程、初始化、填表顺序、结果提取五步解法,并对每道题给出 ** 空间优化(滚动数组 / 一维优化)** 思路与完整代码,适合动态规划零基础入门。

2026-02-16 20:08:43 853 18

原创 【洛谷】并查集 并查集从入门到实战:双亲表示法 + 路径压缩 + 真题代码

本文从双亲表示法入手,讲解并查集初始化、查询、合并、判同四大核心操作,重点介绍路径压缩优化;并结合模板题、亲戚、连通块统计、程序自动分析 4 道经典例题,附完整可运行代码与细节解析,快速掌握并查集核心用法。

2026-02-13 19:06:01 669 33

原创 【洛谷】BFS 求解最短路:从马的遍历到迷宫问题的实战解析

宽度优先搜索(BFS)因层序遍历特性,可高效求解边权为 1 的最短路问题。本文结合马的遍历、迷宫寻路、数字变换三大经典例题,详解 BFS 的解题框架、方向向量设计、可行性剪枝及结果统计的关键要点,掌握 BFS 解决最短路问题的核心思路。

2026-02-07 16:21:44 786 40

原创 【洛谷】记忆化搜索 原理剖析与经典例题详解

本文从记忆化搜索的核心原理(基于 “备忘录” 剪枝解决递归重复子问题)入手,纠正斐波那契递归复杂度的常见误区,结合斐波那契数、Function、天下第一、滑雪四道经典 OJ 题目,拆解记忆化搜索的实现步骤、注意事项及不同场景下的优化技巧,帮助读者掌握该剪枝策略的实际应用。

2026-02-05 12:25:35 698 34

原创 【洛谷】剪枝与优化 剪枝策略实战解析:数的划分与小猫爬山

本文围绕深度优先搜索(DFS)中的剪枝优化展开,以洛谷数的划分(P1025)和小猫爬山(P10483)为例,详解排除等效冗余、可行性剪枝、最优性剪枝、优化搜索顺序等核心剪枝方法的应用场景与实现思路,通过具体代码拆解剪枝逻辑,说明剪枝如何有效减小搜索树规模、降低时间复杂度,解决 DFS 在大数据量下的效率问题。

2026-01-31 02:15:28 791 43

原创 【洛谷】DFS 新手必学的4 道DFS经典题 手把手教你剪枝与回溯

本文详解选数、飞机降落、八皇后、数独四道 DFS 深度优先搜索经典例题,逐一分析各题解题思路、核心剪枝策略及 DFS 返回值的设计逻辑,结合完整可运行代码解析实现细节,助力新手理解 DFS 的实际应用与回溯思想。

2026-01-25 01:49:22 902 45

原创 【洛谷】搜索初识 回溯剪枝 + 三大枚举题型 + 全排列实现

本文解析搜索的本质与 DFS/BFS 核心分类,厘清遍历与搜索的关系,讲解回溯和剪枝的核心概念。以「画决策树→写递归」为解题思路,通过子集、组合、排列、全排列四大经典例题,结合完整代码,详解 DFS 回溯的解题逻辑与实现技巧。

2026-01-19 20:27:53 1124 44

原创 【Linux】信号量 信号量详解与应用和基于环形队列实现单 / 多生产消费模型

本文从共享资源的局部化使用场景引入信号量,讲解信号量核心接口与 PV 操作本质。基于环形队列的特性,通过信号量实现无锁的单生产单消费模型,剖析其同步互斥的底层逻辑;进而优化实现多生产多消费模型,补充互斥锁的合理使用。最终重新梳理互斥锁与信号量的核心关系,理解二者的本质关联。

2026-01-17 18:30:15 1133 35

原创 【洛谷】分治专题 逆序对、第 k 小、最大子段和

本文围绕 “分而治之” 的分治核心思想,结合逆序对统计、快速选择找第 k 小、最大子段和三个经典例题,讲解分治算法的递归拆分逻辑与代码实现,助力理解分治在不同场景下的应用。

2026-01-15 10:33:50 1033 30

原创 【Linux】线程同步 条件变量精讲 + 生产者消费者模型完整实现

互斥锁易引发线程饥饿与 CPU 效率低下问题,本文基于 Linux pthread 库讲解条件变量的核心原理与接口使用,阐述线程同步的本质;结合经典生产者消费者模型,实现阻塞队列的基础版本,并通过 RAII 思想完成条件变量与互斥锁的封装,推出更安全优雅的阻塞队列 V2 版,同时演示任务对象与函数的传递场景。

2026-01-13 21:48:01 1015 36

原创 【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解

本文详解递归的核心定义、使用场景与正确编写思路,强调「宏观视角看待递归、把递归函数当黑盒」的核心技巧;结合汉诺塔、占卜 DIY、FBI 树三道经典算法题,通过逻辑推导 + 完整代码实现,剖析递归在不同场景的应用,梳理解题思路与避坑要点,带你吃透递归算法。

2026-01-10 10:59:28 963 22

原创 【洛谷】离散化专题 模板精讲 + 火烧赤壁 & 贴海报实战

本文讲解离散化核心思想(大范围稀疏数据映射为小范围值),梳理排序 + 二分、排序 + 哈希表两种模板,并结合 “火烧赤壁”“贴海报” 例题,分析离散化在差分、区间覆盖中的应用及避坑要点。

2026-01-06 17:47:32 854 39

原创 【洛谷】倍增专题 从快速幂到快速乘法,一文吃透倍增思想的对数级优化

本文通过快速幂与快速乘法的对比讲解,深入浅出拆解倍增思想的核心逻辑,解决两道经典模板题的核心痛点,提供优化后的代码模板,帮助新手快速入门倍增优化。

2026-01-01 10:41:44 310 46

原创 【洛谷】贪心专题之区间问题 四大经典问题详解:思路、代码与避坑指南

本文总结区间贪心问题核心解题思路,详解线段覆盖、雷达安装、防晒霜分配、牛棚预约四大经典题目,分析解题关键、常见错误与避坑点,附完整可运行代码,助力快速掌握区间贪心解题技巧。

2025-12-23 11:34:19 746 52

原创 【Linux】线程互斥与互斥量全解析:原理、实践与封装

本文围绕多线程并发访问临界资源的数据不一致问题展开,先阐述线程互斥核心概念,再通过抢票案例剖析并发问题根源,详细介绍 pthread 互斥量接口使用,深入解析互斥的硬件与软件实现原理,最后给出互斥锁的 RAII 风格面向对象封装方案,助力读者全面理解线程互斥机制及实践应用。

2025-12-21 17:19:20 1188 43

原创 【洛谷】贪心专题之哈夫曼编码 从原理到模板题解析

本文梳理哈夫曼编码的前置知识(哈夫曼树构造、带权路径长度计算),讲解哈夫曼编码的核心逻辑,结合 “哈夫曼编码模板题” 与 “合并果子” 经典问题,分析解题思路并给出代码实现,帮助读者掌握哈夫曼算法的原理与工程应用。

2025-12-17 08:42:07 1051 41

原创 【洛谷】贪心专题之推公式 用 “相邻元素交换” 推导最优规则

本文聚焦 “排序类贪心问题”,提出 “相邻元素交换法” 推公式的核心思路 —— 通过对比相邻两元素交换前后的目标函数(如最大值、总和),推导最优排序规则(cmp 函数逻辑)。结合洛谷 P1012(拼数)、P2878(护花)、P1842(奶牛杂技)3 道经典例题,详解从问题分析到代码实现的完整流程,帮助读者掌握 “局部最优推导全局最优” 的解题思维。

2025-12-15 21:15:08 1073 40

原创 【洛谷】贪心专题之简单贪心 5 道必刷题目解析与代码实现

本文详解贪心算法核心思想(局部最优推导全局最优),通过货仓选址、最大子段和、纪念品分组等 5 道经典题目,拆解不同场景的贪心策略,附完整代码与严谨证明(反证法、数学推导),纠正排序区间、数组初始化等常见代码错误,助力快速掌握贪心思维。

2025-12-11 21:46:35 915 21

原创 【Linux】线程控制 POSIX 线程库详解与 C++ 线程库封装实践

本文系统讲解 Linux 下 POSIX 线程库(pthread)核心接口(创建、终止、等待、分离等),剖析线程共享资源、传参 / 返回值、TLS(线程局部存储)等关键知识点,纠正线程模型、TLS 支持类型等常见误区;同时提供 C++ 面向对象的线程封装实例,兼顾原理讲解与工程实践,助力开发者掌握多线程编程核心逻辑。

2025-12-11 21:40:09 1033 39

原创 【洛谷】二分答案专题 3 道洛谷经典题(木材 / 砍树 / 跳石头)精讲

本文围绕二分答案法的核心 —— 解空间 “二段性”,结合洛谷木材加工、砍树、跳石头三道经典例题,拆解 “最大值最小 / 最小值最大” 类问题的解题逻辑,指出代码实现中的常见错误(类型溢出、边界问题),并给出完整可运行的代码。

2025-12-01 16:33:02 691 27

原创 【Linux】线程概念 线程与进程深度剖析:虚实内存转换、实现机制与优缺点详解

本文围绕 Linux 线程与进程核心原理展开,先明确线程(CPU 调度单位)与进程(资源分配单位)的定义,再深入讲解物理 / 虚拟内存转换、二级页表与快表机制,剖析 Linux 用进程模拟线程的实现逻辑,搭配线程创建代码示例,补充缺页异常处理、线程优缺点及资源共享 / 独占特性,助力读者夯实多线程基础。

2025-11-30 20:55:21 1456 63

原创 【Linux】进程信号(二)信号保存与捕捉全解析、可重入函数、volatile

本文系统梳理 Linux 信号的核心知识体系,涵盖信号递达、未决、阻塞三大核心概念,详解 task_struct 中信号的内核表示与 sigset_t 信号集的操作方法;深入剖析信号捕捉的完整流程(内核态 / 用户态切换),结合硬件中断、软中断等底层原理铺垫;同时讲解可重入函数、volatile 关键字的实际应用场景,并补充 SIGCHLD 信号解决僵尸进程的实用技巧,附完整可运行代码示例,助力开发者彻底掌握 Linux 信号的原理与实践。

2025-11-28 14:14:00 1008 25

原创 【洛谷】二分查找专题 告别二分死循环!模板 + 细节 + 实战

本文以 LeetCode「在排序数组中查找元素的第一个和最后一个位置」为模板题,拆解二分查找的核心原理,重点分析中点计算、循环条件、边界判断三大关键细节,提炼通用二分模板。同时介绍 STL 中lower_bound/upper_bound的用法,并结合「牛可乐和魔法封印」「A-B 数对」「烦恼的高考志愿」三道实战题,详解解题思路与代码实现,帮助读者攻克二分查找的边界痛点。

2025-11-28 11:27:16 1164 31

原创 【Linux】进程信号(一)信号原理、产生方式、调试技巧(含代码示例)

本文详解 Linux 信号的核心逻辑:信号是 OS 用于事件通知的异步机制,进程有默认、忽略、自定义捕捉三种处理行为。深入剖析信号本质(OS 修改 PCB 信号位图)、四大产生方式(键盘、kill、软件条件、硬件异常),并通过代码示例演示 signal、kill、alarm 等系统调用的使用,最后厘清 Core 与 Term 的核心区别及 core dump 调试场景,帮助读者全面掌握 Linux 信号的原理与实践。

2025-11-19 21:43:07 2910 62

原创 【洛谷】滑动窗口专题 实战指南:4 道经典例题吃透核心逻辑

本文通过 “唯一的雪花”“逛画展” 等 4 道经典例题,从基础去重到复杂窗口变形,详解滑动窗口(同向双指针)的优化原理、判断逻辑及代码实现,解决重复元素、最小窗口、环形结构等常见问题,帮助快速掌握 O (n) 复杂度的枚举优化技巧。

2025-11-19 21:34:28 1071 35

原创 【洛谷】差分专题 从一维到二维,模板 + 例题彻底吃透

差分是 “空间换时间” 的经典算法,核心是预处理差分数组实现 O (1) 区间增减操作,与前缀和互为逆运算。本文从一维差分模板切入,结合海底高铁、地毯等经典例题,详解一维 / 二维差分的边界处理、变量溢出等关键细节,配套可直接运行代码,帮算法入门者快速掌握差分实战技巧。

2025-11-15 08:33:49 1212 31

原创 【Linux】进程间通信(四)消息队列、信号量与内核管理ipc资源机制

本文详解 System V 标准下三种 IPC 机制:消息队列(小块数据块通信)、信号量(原子计数器实现同步互斥)、共享内存(高效内存共享),介绍其指令 / 代码接口,剖析临界资源与临界区概念,并揭示内核通过 ipc_id_ary 数组统一管理 IPC 资源的底层逻辑。

2025-11-14 09:14:56 1915 38

原创 【Linux】进程间通信(三)System V 共享内存完全指南:原理、系统调用与 C++ 封装实现

共享内存是物理内存中映射到进程地址空间的一块区域,是最快的 System V IPC 通信方式。本文从原理入手,详解 ftok(键值生成)、shmget(创建 / 获取)、shmat(挂接)、shmdt(解挂)、shmctl(控制 / 删除)等核心系统调用,用 C++ 封装共享内存类,实现服务端(创建 / 删除)与客户端(获取)的进程间字符通信。重点说明其 “生命周期随内核” 特性,以及 “无需系统调用、速度最快” 的优势,同时指出其缺乏同步互斥机制的问题及解决思路。

2025-11-11 18:14:06 1300 32

原创 【Linux】进程间通信(二)命名管道(FIFO)实战指南:从指令操作到面向对象封装的进程间通信实现

本文详解命名管道(FIFO)的原理(基于文件 inode,数据不刷盘)、指令创建与数据传输,重点实现客户端 / 服务端进程通信(含 Makefile 多目标编译优化),并通过面向对象封装解耦核心操作,最终总结其用于无关联进程间通信的核心特点。

2025-11-10 21:39:57 1959 51

原创 【洛谷】前缀和专题 一维到二维前缀和模板精讲与实战

本文聚焦前缀和核心思想 ——“预处理优化时间复杂度”,详解一维 / 二维前缀和的实现模板(下标从 1 开始的原因、递推公式),并结合「最大子段和」「二维前缀和查询」「激光炸弹」等实战题目,拆解前缀和在区间和、矩阵价值计算中的应用,适合算法入门者掌握 “空间换时间” 的预处理思维。

2025-11-10 16:48:47 854 14

原创 【洛谷】枚举专题-二进制枚举 从子集到矩阵问题,经典应用与实现

本文通过「子集」「费解的开关」「EvenParity」三道题,循序渐进讲解二进制枚举的原理与位运算技巧,从基础子集枚举到复杂矩阵递推,附完整 C++ 代码与分步思路解析,助力算法入门者掌握枚举类问题解题逻辑。

2025-11-06 18:18:35 1259 44

原创 【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程

本文深入解析 Linux 进程间通信中匿名管道的概念、底层原理与特性,结合代码示例完整演示基于匿名管道的进程池实现过程,涵盖技术细节、bug 修复与实践技巧,助力开发者掌握 Linux 进程通信与进程池开发。

2025-11-05 16:12:19 1946 55

原创 【洛谷】枚举专题-普通枚举 经典题解之铺地毯、回文日期、扫雷

本文解析洛谷枚举专题中 “铺地毯”“回文日期”“扫雷” 三道经典题目,讲解普通枚举策略的应用要点(枚举对象、顺序、方式),并给出清晰代码实现,帮助读者掌握枚举算法的暴力与优化思路。

2025-10-31 10:59:10 678 19

原创 【Linux】库制作与原理 从生成使用到 ELF 文件与链接原理解析

本文详细讲解 Linux 环境下动静态库的核心概念(静态库.a/.lib、动态库.so/.dll)、生成步骤(静态库用 ar 打包、动态库用 gcc -fPIC -shared)与使用方法(解决库路径依赖的 4 种方案),并深入剖析 ELF 文件结构(ELF Header、节头表、程序头表)及动静态链接原理(静态链接的地址重定位、动态链接的 GOT/PLT 延迟绑定),帮助开发者理解库的底层逻辑与实操要点。

2025-10-29 18:25:28 1267 59

原创 【洛谷】高精度专题 加减乘除全实现

本文详细讲解高精度加减乘除的 C++ 实现思路,结合洛谷 P1601(加法)、P2142(减法)等题目,拆解 “逆序存储”“进位 / 借位处理”“前导零清除” 等核心步骤,修正代码中数组大小、注释等问题,适合新手掌握大整数计算方法。

2025-10-28 10:37:13 865 29

原创 【Linux】Ext系列文件系统 从磁盘结构到文件存储的原理剖析

本文聚焦 Linux Ext 系列文件系统,从磁盘物理、逻辑结构切入,深入解析 “块”、inode、分区管理、路径解析及软硬链接等底层机制,完整呈现文件在磁盘中的存储与访问逻辑。

2025-10-23 19:05:16 1148 62

原创 【洛谷】模拟专题 多项式、蛇形方阵与字符串展开

本文解析多项式输出、蛇形方阵、字符串的展开三个经典编程题,分别通过分类讨论、方向向量法、函数封装等思路解决问题,附完整代码,助力理解编程中的细节处理与逻辑构建。

2025-10-22 10:54:30 820 28

原创 【洛谷】哈希表实战:5 道经典算法题(unordered_map/set 应用 + 避坑指南)

本文针对 5 道哈希表应用的经典算法题(学籍管理、不重复数字、阅读理解、A-B 数对、CitiesandStatesS),提供完整可运行代码及核心思路解析。核心围绕unordered_map(统计次数、键值对应)、unordered_set(高效去重)、set(有序去重)三大容器,解决 “如何避免超时”“处理数据溢出”“保证输出有序”“避免重复计数” 等关键问题。通过实例讲解哈希表在 “增删改查”“多数据关联” 场景下的应用,帮助新手掌握从 “暴力思路” 到 “O (n) 高效思路” 的转化,规避常见编码坑

2025-10-19 15:11:30 1049 31

原创 【Linux】基础IO(二)深入理解“一切皆文件” 与缓冲区机制:从原理到简易 libc 实现

本文系统讲解 Linux “一切皆文件” 的底层原理(struct file与file_operations的核心作用、VFS 抽象层价值),拆解缓冲区的分类(语言级 / 内核级)、刷新策略(行刷新 / 全刷新 / 强制刷新)及实际应用场景,剖析标准错误与输出重定向的语法和差异,并通过手搓简易 libc 库(实现my_fopen/my_fwrite/my_fclose)巩固 IO 流程,适合 Linux IO 入门者理解核心概念。

2025-10-19 15:11:05 1669 49

原创 【Linux】基础IO(一)Linux 文件操作从入门到实践:系统调用、文件描述符、重定向,为自定义Shell添加重定向

本文从 Linux 文件操作底层逻辑出发,梳理 C 库文件接口与系统调用的关联,解析文件描述符分配规则及内核管理机制,详解重定向本质,并通过完整代码实现支持重定向的自定义 Shell(含cd/echo内建命令),帮助读者理解文件管理原理并掌握实践开发。聚焦 Linux 文件操作核心:先厘清 C 接口(fopen等)与系统调用(open等)的关系,再拆解文件描述符与进程的关联逻辑,讲解重定向原理,最后附自定义 Shell 完整实现,助力快速掌握 “原理 + 实践”。

2025-10-16 21:37:37 1822 53

空空如也

空空如也

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

TA关注的人

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