POJ 2271 HTML 解析問題:Delphi 實現與關鍵點解析
問題背景 POJ 2271 是一道經典的字符串處理問題,要求解析類 HTML 標記(<br>、<hr>)並進行排版輸出。輸入包含多行文本
三大 STL Allocator 實現對比:MSVC、SGI STL、ACE 內存分配器架構解析
前言 C++ 標準庫要求 Allocator 滿足 rebind、allocate/deallocate、max_size、構造/析構等最小介面。三大主流實現—
C/C++ 性能優化細節:前置遞增(++i) vs 後置遞增(i++) 深度比較
核心差異:語義與實現機制 對於內建類型(int、指針等),現代編譯器優化後 ++i 和 i++ 通常生成相同的機器碼,性能無差異。但對於用戶自定義類型(類),兩
HDU 4407 Sum:容斥原理 + 線段樹離線處理區間互質和查詢
問題重述 數列 A[i] = i (1 ≤ i ≤ n)。支援兩種操作(Q ≤ 1000): 1. 查詢 [a, b] 中與 p 互質的元素和。 2. 單點修改
ZOJ 3494 BCD Code:AC 自動機 + 數位 DP 解決病毒串避開計數
問題重述 給定 A、B (≤ 10²⁰⁰) 及 n 條病毒二進制串 (總長 ≤ 2000)。求區間 [A, B] 內有多少整數,其 BCD 編碼(每十進位數字轉
POJ 1799 Yeehaa!:幾何推導求內切小圓半徑
問題重述 大圓半徑 R,內部放 n 個相同小圓,每個小圓與大圓內切,相鄰小圓互切。給定 R 和 n (2 ≤ n ≤ 100),求小圓半徑 r,保留三位小數。
Linux 內核進程創建全流程:fork → do_fork → copy_process 深度解析
前言 Linux 進程創建通過 fork()/clone() 系統調用進入內核,核心邏輯在 do_fork() → copy_process()。本文基於 Li
HDU 4328:單調棧優化矩形周長 + DP 最大子正方形
問題背景 給定 n×m 的 0/1 矩陣(B/W),求兩類圖形的最大周長: 棋盤染色正方形:相鄰格顏色不同,對角同色的最大正方形,周長 = 邊長 × 4。 純
VC++ 文件操作實戰:遍歷目錄、獲取路徑、創建目錄與重命名
前言 在 Windows 平台下進行文件系統操作,MFC/Win32 API 提供了豐富的功能。本文匯總四大高頻場景的標準實現模式,代碼均經實測可直接用於 VC
POJ 2184 Cow Exhibition:01 背包變體求最大智慧與快樂和
問題重述 有 n 頭牛,每頭牛有智慧指數 S 和快樂指數 F(可為負)。選擇若干牛使得: ΣS ≥ 0 且 ΣF ≥ 0 最大化 ΣS + ΣF。若無解輸出 0
POJ 字符串全排列:next_permutation、DFS 去重與 STL 實戰對比
問題描述 輸入一個僅含小寫字母的字符串(長度 ≤ 200),輸出其所有不重複排列,按字典序升序排列。本質是求多重集的全排列。 方法一:STL next_per
CF 228D Zigzag:線段樹維護周期序列區間和查詢
問題重述 給定長度為 n 的數列 a[],支援兩種操作: 單點修改:a[p] = v 區間查詢:求 sum_{i=l}^{r} a[i] * s(i-l+1)
設計模式筆記:門面模式——為複雜子系統提供統一入口
模式意圖 門面模式為子系統中的一組介面提供一個一致的高層介面,使子系統更容易使用。它將客戶端與子系統解耦,客戶端無需了解子系統內部結構,只需調用門面暴露的簡化方
C++ 單例模式深度解析:從基礎實現到資源自動釋放
單例模式的基本概念與簡單實現 單例模式是最經典的設計模式之一,其核心目的是確保某個類在整個程序運行期間只存在一個實例,並提供一個全局訪問點。最基礎的實現方式是將
C++ 面向對象核心:類、繼承與虛函數機制深度解析
前言 C++ 常被戲稱為「帶類的 C」,實則它引入了完整的面向對象體系:封裝、繼承、多態。本文聚焦類與結構體差異、繼承模式(單/多繼承、公共/保護/私有/虛繼承
C++ STL string 完整指南:構造、操作與常用成員函數詳解
前言 std::string 是 C++ 標準庫中最常用的字符串容器,封裝了動態內存管理、字符操作、查找比較等功能。本文系統梳理其構造方式、運算符重載、核心成員
HDU 4085 斯坦納樹問題:狀態壓縮 DP + SPFA 完整解析
問題背景 HDU 4085 是經典的斯坦納樹(Steiner Tree)問題變體。給定無向圖,需找到連接特定終端點集合的最小權樹。本題中終端點分為兩組,各 k