自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 「HFUT 2026 Training 7|一场南瓜盛宴」

这场 HFUT Training 7 的五道题,我复盘出来的不是五个解法,而是五次变形。南瓜地把计算降到估算,先算范围再写代码;南瓜蛋糕从 2^(n-1) 的假象里数出 31,用增量法加朱世杰恒等式推出 C(n,2)+C(n,4)+1;南瓜灯用 t+t 把环剪成链;南瓜灯架靠相遇即穿越省掉整个模拟器;南瓜光带沿边界编号,把相交判定翻译成括号匹配。每章末尾都有一节发散思维,面向整个类型讲骨架与失效边界。最后按五类陈列了二十多道真题,标了平台、难度、考点,还给了解题路径。

2026-10-31 09:09:12 667 1

原创 算法刷题笔记「Day 5|消除重复与冗余」

求第 3 万个质数,试除法跑了 52.5 亿次运算直接 TLE,只试到 √i 后内层从 35 万降到 591 次。埃氏筛把逐个判断换成批量划掉,i*i 起点漂亮但 350377² 会溢出 int,得写 1LL;欧拉筛一句 break 压到严格 O(N)。开关灯让我看清嵌套循环是维度分离,j+=i 删掉了取模判断。杨辉三角用滚动数组把空间从 O(n²) 降到 O(n),关键在必须逆序更新;当依赖只跨相邻位置时,逆序更新就能解决,而当依赖跨多个方向时,就只能物理隔离,这和 Day 4 双数组对照。双指针省的不是

2026-10-30 09:07:35 405

原创 算法刷题笔记「Day 4|浮点、内存与不存的艺术」

Day 4 撞上四种看不见的东西:B2066 救援里 sqrt 和除法累积出的 1e-15 误差,让本该是 10.0 的时间被 ceil 顶成 11,得减个 eps;全局变量那题第二组莫名多出 6,才明白栈只有 8MB、.bss 有几百 MB,状态变量必须在循环头清零;B2108 图像模糊在原数组上直接改,读到的是已污染的邻居,必须双数组隔离加边界守卫;B2101 最狠,参考代码根本不存矩阵,边读边判就出答案。四道题连起来就一句话:你对运行时的想象越准确,踩的坑越少。

2026-10-30 08:45:52 592

原创 算法刷题笔记「Day 3|递归与迭代的七次转化」

Day 3 啃递归。我把递归版和迭代版并排逐行对应,拆成七种转化:阶乘看尾调用和累加器,求和把回程运算提前到去程,二叉树中序遍历用显式栈替代系统调用栈,汉诺塔给每帧加 state 字段模拟指令指针,斐波那契则跳出模拟、用滚动变量消掉指数重复子问题直达 DP,外加循环转尾递归、双层循环转嵌套递归两个反向例子。拆完才明白:递归是让编译器管栈,迭代是自己决定用变量、stack 还是 state 来存现场。

2026-10-28 15:20:33 305

原创 算法刷题笔记「Day 2.5|循环进阶补充篇」

Day 2.5 是循环专题的补充进阶。数字9一题连错三次,最后靠外层枚举+内层逐位+内层 break 做对,还延伸出容斥、字符串、数位DP三种境界;球弹跳用 term 不断除2替代 pow,避免大指数撑爆 double;统计位数用 while、do-while、for 三种写法厘清循环选型;交错调和级数用 flag=-flag 的二态翻转彻底干掉 pow(-1,n)。四题共同回答一个问题:循环和数学,边界到底在哪。

2026-10-27 08:20:54 623

原创 算法刷题笔记「Day 2|循环里的状态思维」

Day 2 接着刷循环:B2054 里 while 会把循环变量 n 减到 0,做除数前必须备份,for 的局部变量天然没这问题;B2080 用滚动累乘记住上一项,把多项式求和从 O(N²) 压到 O(N);B2083 画矩形从双循环、合并条件、string 整行构造到画布缓冲,是四种思维层次;B2079 求 e 用单层迭代替代双层阶乘,无后效性正是动态规划空间压缩的依据。四道题串成一条线:循环考的从来不是重复执行,而是状态管理。

2026-10-26 09:00:24 472

原创 算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」

这篇笔记记录了我刷 4 道入门 OJ 题时踩的坑——整数除法不"智能"、向上取整靠公式;逻辑运算符背后是布尔代数,!= 就是异或;月份判季节能用 8 种写法从 if-else 写到函数指针和位掩码,是数据驱动、行为即数据的思想演进;int 溢出在角谷猜想里会把你从 WA 坑到 TLE,long long 才是正解。文末 5 个深度思考从数学推导聊到 Yoda 条件,适合入门后想往深里挖的同学。

2026-10-25 16:01:24 323

原创 【C Primer Plus 精读】Day7 收官

这是七日精读系列的收官篇,覆盖第13-17章(文件IO、结构体、位操作、预处理器、高级数据表示)。从FILE流的底层封装、大文件2GB限制的历史原因,一路讲到结构体内存对齐与柔性数组、位字段的可移植性坑、宏函数的三大陷阱、链表vs数组的缓存性能差异,最后以ADT接口与实现分离的软件工程思想收尾,给七天的底层探索画一个完整的句号。

2026-10-06 20:13:34 668 1

原创 【C Primer Plus 精读】Day6

【C Primer Plus 精读】Day6

2026-10-03 22:06:00 285

原创 【C Primer Plus 精读】Day5

这篇笔记记录了我啃完第10章数组和指针的完整探索过程:从数组的连续内存本质入手,逐层拆解了数组名退化的三种例外、指针运算的类型步进机制、a[i]==i[a] 的语法反直觉真相、二维数组行优先存储与数组指针、指针数组与数组指针的辨析、函数参数退化陷阱,最后延伸到指针类型的四重意义和 strict aliasing 优化规则。

2026-09-30 21:39:37 462 1

原创 【C Primer Plus 精读】Day4

这篇笔记记录了我从 I/O 缓冲区的三种模式入手,顺着重定向和管道的文件描述符机制挖到 Unix 哲学,再深入函数栈帧结构、调用约定、尾递归优化、函数原型的历史变迁,最后到指针参数传值本质的完整探索过程。第 8-9 章看似基础,但背后牵涉的缓冲策略、系统调用开销、栈帧布局和调用约定都是理解 C 语言底层运行机制的关键知识。

2026-09-28 21:30:03 432 1

原创 【C Primer Plus 精读】Day3

这篇是《C Primer Plus》七日阅读计划的第三天,覆盖第6-7章(循环与分支跳转)。深入拆解了循环在汇编层面的实现本质、编译器循环优化的四大技术(不变量外提、循环展开、强度折减、自动向量化)、短路求值的底层逻辑与分支预测影响、switch语句的三种实现策略(跳转表/比较链/二分查找)、goto的争议历史与Linux内核中的合理用法、break与continue的本质区别及常见陷阱,带你从跳转指令的视角重新理解控制流。

2026-09-25 00:28:10 342 1

原创 【C Primer Plus 精读】Day2

这篇是《C Primer Plus》七日阅读计划的第二天,覆盖第4-5章(格式化输入输出与运算符)。深入拆解了printf可变参数的va_list实现机制与默认参数提升规则、行缓冲与fflush的原理、运算符优先级的设计逻辑与历史渊源、自增前后缀的性能差异与适用场景、序列点与求值顺序导致的未定义行为、通常算术转换的完整规则(含unsigned混合运算陷阱),以及左值右值的本质概念。

2026-09-22 22:42:03 426

原创 【C Primer Plus 精读】Day1

这篇是《C Primer Plus》七日阅读计划的第一天笔记,覆盖第1-3章入门内容。但没有停留在语法层面,而是从数据底层深入展开:补码的数学本质与模运算原理、IEEE 754浮点数标准的精妙设计(隐含1、偏置指数、非规格化数)、有符号整数溢出的未定义行为与编译器优化、char的符号性争议、大小端的由来与判断方法。带你在入门阶段就建立起对C语言底层机制的完整认知。

2026-09-20 21:09:35 599 1

原创 【《Effective C++》精读】条款37-55

整理条款37到55的核心要点。内容涵盖继承与多态进阶细节(virtual默认参数的静态绑定陷阱、复合vs private继承、多重继承的权衡)、模板与泛型编程关键实践(隐式接口与编译期多态、typename双重含义、traits classes、模板元编程)、定制new/delete的注意事项(new-handler机制、placement new/delete成对),以及编译器警告、标准库与Boost等杂项讨论。全书55条至此全部收尾。

2026-09-18 22:20:47 265

原创 【GitHub本周黑马Top5】第2个堪称求职外挂

这周我扎进 GitHub Trending 周榜,又搜了近期黑马,挑出五个不重样的真工具:archify 把整个代码库编译成可交互架构图;ai-job-search 是位失业老哥自建的 AI 求职框架,靠它 69 投 20 面成功上岸;OpenLogi 用 Rust 重写罗技驱动,本地运行零遥测;Apache 孵化中的 maka 把 Agent 对话全记成本地日志;还有 954 星的 x64dbg MCP 插件,让 AI 陪你逆向调试。star 数据截至 2026-08-30,每个都附上手命令。

2026-09-01 21:40:12 626

原创 【精读《Effective C++》】继承的世界里,is-a不是随便说的

从 public 继承的 is-a 本质出发,被"企鹅不会飞"和"正方形不是矩形"两个反例狠狠教育;接着搞清楚派生类名称遮掩基类重载函数的坑,以及 using 声明式的解法;然后分清 pure virtual、impure virtual、non-virtual 分别对应只继承接口、继承缺省实现和继承强制实现;还见识了 NVI 手法、函数指针与 std::function 三种 virtual 替代方案;最后从静态绑定层面理解了为什么绝不能重定义继承来的 non-virtual 函数。

2026-08-29 23:14:27 535

原创 【《Effective C++》精读】实现

从swap机制出发,理解了pimpl手法下如何通过成员swap+non-member swap+std::swap特化三层结构实现高效无异常置换;然后是条款26延后变量定义、条款27转型的代价与dynamic_cast的性能陷阱、条款28返回内部handle导致的封装泄漏与悬空指针、条款29异常安全三保证与copy-and-swap策略、条款30 inline的真实成本与80-20法则、条款31通过Handle class和Interface class降低编译依存性。

2026-08-28 23:13:41 502

原创 【《Effective C++》精读】设计与声明

我从条款18的"容易正确使用、不易误用"出发,依次理解了类型系统如何防御客户错误、为什么pass-by-reference-to-const能同时解决效率和对象切割、返回reference为何会引发悬空别名、private成员变量如何换来封装弹性、non-member non-friend函数为何反而更面向对象,以及混合运算中隐式转换的不对称性。整条线索让我意识到,好的接口不是"功能齐全",而是"让错误的代码写不出来"。

2026-08-27 23:22:33 379

原创 【《Effective C++》精读】资源管理(条款13-17))

核心是 RAII。条款13讲用对象管理资源,factory 返回的指针立刻塞进智能指针;条款14讨论 RAII 对象被复制时的4种策略——禁止复制、引用计数、深度拷贝、转移所有权;条款15讲为什么 RAII 类还要暴露原始资源访问(显式 get vs 隐式转换);条款16强调 new/delete 必须形式一致,[] 必须配对;条款17是最隐蔽的坑——new 出来的对象必须在独立语句里放进智能指针,否则参数求值顺序导致异常时可能泄漏。

2026-08-26 20:00:02 599

原创 【《Effective C++》精读】构造/析构/赋值运算(下)

条款09讲为什么构造/析构期间 virtual 函数不会向下匹配,以及用"derived 向上传 logInfo"替代的解法;条款10要求所有 assignment 操作符返回 reference to *this 以支持连锁赋值;条款11处理自我赋值——证同测试、语句顺序、copy-and-swap 三种姿势以及异常安全与自赋值安全的耦合关系;条款12强调 copying 函数必须复制所有 local 成员变量并调用所有 base class 的对应函数,且两个 copy 函数不要互相调用。

2026-08-25 23:11:40 589

原创 【精读《Effective C++》】构造/析构/赋值运算(上)(条款05-08)

读完《Effective C++》第二章前四条,我把 C++ 对象从生到死、再到赋值的关键规则串成一条线。条款05讲编译器偷偷写了哪六个函数;条款06讲怎么拒绝拷贝;条款07解释为什么多态基类必须 virtual 析构、不该 virtual 的类加上 virtual 反而亏;条款08说明析构函数吞异常的两种姿势以及把 close 暴露给客户的更佳设计。最有冲击的是 vptr 带来的 50%~100% 体积膨胀——一个"小决定"的代价原来这么具体。

2026-08-24 16:33:08 754

原创 【精读《Effective C++》】让自己习惯 C++(条款 1-4)

精读《Effective C++》第一章「让自己习惯 C++」条款 1-4:先理解 C++ 是 C、面向对象、模板、STL 四个次语言的联邦;再用 const、enum、inline 替代 #define,把检查交给编译器;接着把 const 用满指针、迭代器、返回值和成员函数,掌握 mutable 与 const_cast 的精细控制;最后解决初始化的坑——内置类型手工初始化、成员初值列、跨编译单元用 local static 替换。

2026-08-23 23:43:04 673

原创 【C语言学习笔记】二叉查找树

这篇笔记从《C Primer Plus》17.7.5节那只"长歪的树"说起。BST理想查找是O(log n),可数据一旦按顺序输入,就会退化成链表。AVL用旋转把高度压回log n。我又顺着宠物俱乐部的例子,把重复项(计数器/挂链表/复合键)和多键索引(多棵树指一份数据)挖到了词频统计和数据库索引。因为蓝本只有两页,深度思考补了八个问题:BST高度公式、AVL旋转、平衡因子±1、红黑树与B+树为什么后来居上、C语言怎么用void*和宏写泛型库。

2026-08-22 23:27:01 632

原创 【C语言学习笔记】一次数据表示的探索

这篇笔记记录了我学习C语言数据表示的探索过程。从一个电影评分程序出发,我先尝试结构数组,却发现固定大小要么不够用要么浪费内存;用 malloc 动态分配解决了数量问题,但又面临内存不连续的困境。最终我通过在结构体中加入 next 指针,构建出链表——每项知道下一项在哪,按需分配、按需释放。在完整实现了链表的创建、遍历和释放后,我也意识到把接口和实现细节混在一起的问题,这自然引出了抽象数据类型(ADT)的思想:类型不仅是数据的存储方式,还包括对数据的操作定义。

2026-08-21 23:11:18 366

原创 【C语言学习笔记】C语言函数栈帧详解

本文通过分析函数调用时的栈帧结构,解答了以下核心问题: 1.局部变量存储机制 2."随机值"现象。3. 函数参数传递 4.返回值传递:函数通过eax寄存器返回结果,调用方从eax获取返回值。5. 栈帧生命周期。6. 调试现象解释:揭示了Debug模式下"烫烫烫"现象的成因。

2026-08-20 22:18:31 325

空空如也

空空如也

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

TA关注的人

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