自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】Socket编程UDP Echo 服务器→翻译服务器→多人聊天室

本文基于 Linux 平台,从零实现 UDP 网络编程的三个迭代版本:基础回显服务器、英文翻译服务器、多用户并发聊天服务器。讲解 socket、bind、recvfrom、sendto 等系统调用用法,完成服务端 / 客户端开发、业务解耦、多线程与线程池优化,实现全双工通信,并补充跨平台通信基础原理,适合 UDP 网络编程入门学习。

2026-05-03 18:00:28 1684 41

原创 【洛谷】图论 图论最短路算法全解:从单源 Dijkstra 到多源 Floyd 模板与实战

本文系统梳理图论中两类核心最短路问题:单源最短路与多源最短路。详细讲解基于贪心思想的 Dijkstra 算法(含常规版与堆优化版),以及基于动态规划的 Floyd 插点法,包含算法原理、状态转移、代码实现与边界处理,并提供竞赛模板,帮助读者快速掌握最短路问题的求解思路与工程实现。

2026-03-15 10:55:09 1288 45

原创 【Linux】线程池(二)C++ 手写线程池全流程:从核心设计到线程安全、死锁深度解析

本文讲解 C++ 线程池的完整实现,包含线程管理、任务队列、互斥锁与条件变量的核心设计,实现了任务入队、线程调度、安全退出等功能;同时解析线程安全与可重入的区别、死锁的四大条件及规避方案,总结 STL 与智能指针的线程安全特性,帮助理解并发编程核心要点。

2026-03-14 08:28:28 1218 39

原创 【洛谷】图论 拓扑排序详解:DAG 与 AOV 网核心逻辑 + 代码实现

本文讲解有向无环图、AOV 网的核心概念,详解拓扑排序的实现原理与判环方法,提供拓扑排序的 C++ BFS 模板代码,助力快速掌握拓扑排序的理论与实战。

2026-03-13 08:05:58 414 6

原创 【洛谷】图论 最小生成树详解:Prim与Kruskal算法(含代码实现)

本文讲解最小生成树概念及Prim、Kruskal两种贪心算法的核心思想与代码实现(含邻接矩阵、vector存图及并查集应用)。

2026-03-12 07:57:09 575 11

原创 【Linux】线程池(一)C++ 手写线程池:基于策略模式实现高性能日志模块

本文讲解池化技术核心思想,并基于策略模式实现 C++ 日志模块,包含日志等级、时间戳、控制台 / 文件输出、线程安全封装,采用 RAII 与内部类完成日志拼接与自动刷新,可直接集成到线程池等后端项目中。

2026-03-11 08:03:29 1206 34

原创 【洛谷】图论入门:从基本概念到代码实现(邻接矩阵、邻接表、DFS/BFS)

本文系统梳理了图论的核心概念,包括图的定义、有向 / 无向图、度、路径、连通性等,并详细介绍了图的两种存储方式 —— 邻接矩阵与邻接表(含 vector 数组和链式前向星)。同时,提供了深度优先搜索(DFS)和广度优先搜索(BFS)的完整代码实现,帮助读者快速掌握图的遍历方法。

2026-03-08 10:35:18 663 12

原创 动态规划 线性 DP 五大经典模型:LIS、LCS、合唱队形、编辑距离 详解与模板

本文系统讲解线性 DP 中最核心的五大经典问题:最长上升子序列(LIS)的暴力与贪心 + 二分优化解法、最长公共子序列(LCS)、合唱队形、编辑距离。统一从状态表示、状态转移、初始化、填表顺序、结果输出五个维度分析,并提供可直接使用的 C++ 模板,适合 DP 入门与考研 / 笔试复习。

2026-03-06 11:12:42 692 24

原创 动态规划 路径类 DP 入门:3 道经典例题(最小路径和 + 迷雾森林 + 过河卒)全解析

本文讲解路径类 DP(线性 DP 分支)的解题思路,通过矩阵最小路径和、迷雾森林、过河卒 3 道经典例题,拆解状态表示、转移方程、初始化等核心步骤,附完整代码,帮助新手快速掌握路径类 DP 解题方法。

2026-03-01 09:05:41 1357 44

原创 动态规划 线性 DP 经典四题一遍吃透

本文讲解线性动态规划的基本思想与通用解题步骤,通过台阶问题、最大子段和、传球游戏、乌龟棋四道经典例题,从状态表示、转移方程、初始化到代码实现完整拆解,帮助初学者快速掌握线性 DP 的核心套路与写法。

2026-02-24 16:57:44 1871 35

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

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

2026-02-16 20:08:43 1057 24

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

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

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

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

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

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

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

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

2026-02-05 12:25:35 768 35

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

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

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

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

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

2026-01-25 01:49:22 1022 46

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2026-01-06 17:47:32 912 40

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

空空如也

空空如也

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

TA关注的人

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