UVA 10651 Pebble Solitaire:狀態壓縮 DFS 求最少剩餘棋子
問題描述 12 個位置,初始有棋子(o)或空(-)。移動規則:相鄰兩顆棋子,若其左側或右側緊鄰一空位,可將外側棋子跳過內側棋子落入空位,並移除被跳過棋子。求最少
Manacher 算法求回文子串對:O(n) 線性掃描與差分統計
問題描述 給定長度 n (≤ 2×10⁶) 小寫字母串,求有多少對回文子串交集非空。答案模 1,000,000,007。 交集非空:兩回文區間 [a,b], [
Splay Tree 伸展樹實現:區間翻轉、區間加與區間求和
伸展樹核心特性 二叉搜索樹變體,保持有序性:左子樹 < 根 < 右子樹。 自我調整:訪問節點後伸展至根,均攤 O(log N)。 非嚴格平衡,但實際性能優秀,
Redis 源碼深度解析:動態字符串 (SDS) 設計藝術
為什麼 Redis 不用 C 字符串? C 字符串以 \0 結尾,無法存儲二進制數據、獲取長度 O(N)、拼接易緩衝區溢出、無法高效擴展。Redis 設計 SD
博弈論經典:放球遊戲 (a^b 閾值遊戲) 遞歸求解
問題重述 初始 a 個箱子、b 個球,雙方輪流操作:每回合必須增加一個箱子 或 一個球(二擇一)。若操作後放球方案數 aᵇ ≥ n,則操作者輸。Stas 先手,
More Effective C++ 精華:RAII 與異常安全的資源管理
核心思想:RAII (Resource Acquisition Is Initialization) 利用局部對象的生命周期綁定資源:構造時獲取,析構時釋放。無
POJ 3641 偽素數判定:費馬小定理與快速冪取模
問題描述 給定 2 < p ≤ 10⁹, 1 < a < p。若 p 為合數且滿足 aᵖ ≡ a (mod p),則稱 p 為以 a 為底的偽素數。
C++ 類練習:旱冰場造價計算(修旱冰場)
代碼結構分析 本文代碼與 ID 217051、217055 需求完全一致,屬於同一教學案例的不同學生提交。結構特點: 類名 Circle,私有成員 radiu
區間問題雙雄:完全覆蓋與最少兩點擊中——貪心算法深度解析
問題一:區間完全覆蓋(最少線段數) 模型 給定目標區間 [0, M] 及 n 條備選線段 [lᵢ, rᵢ],選最少數量線段使聯集覆蓋 [0, M]。 貪心策略
C++ 面向對象練習:重構旱冰場造價計算(面向對象 2)
版本對比:從過程式到物件導向 本文代碼與前文(ID 217051)需求相同,但結構更貼近標準 C++ 教學範例:將「行為」(計算周長/面積)封裝為返回值函數,而
libpcap 開發避坑指南:缺少開發包導致編譯失敗的診斷與修復
現象:同樣代碼,Fedora 14 編譯通過,Fedora 12 報錯 jack.h:9:17: error: pcap.h: No such file or
並查集解決「朋友/敵人」團伙劃分問題(rqnoj 577)
問題建模 N 個人,M 條關係: F a b:a、b 是朋友(同屬一團伙) E a b:a、b 是敵人(屬於對立團伙) 規則: 1. 朋友的朋友是朋友(傳遞性)
區間覆蓋問題:貪心策略求最小線段總長度(山東理工大學 OJ 2074)
問題描述 給定 n 個單位區間 [i-1, i](由整數坐標 i 表示),需用 ≤ m 條線段覆蓋所有區間,線段長度可任意,求線段總長度最小值。 數據範圍:1
C++ 面向對象入門實戰:封裝圓類計算旱冰場造價
需求背景 某學校擬建圓形旱冰場,圍欄單價 35 元/米,水泥硬化單價 20 元/㎡。輸入半徑,輸出圍欄造價、水泥造價及總造價。以此為例演示 C++ 類的封裝、成
流水作業調度:Johnson 算法求解雙機最優順序與最短完工時間
問題定義 有 n 個作業需依次在機器 M1、M2 上加工,作業 i 耗時分別為 aᵢ、bᵢ。作業不可中斷,求最優調度順序使總完工時間(Makespan)最小。即
TopCoder SRM 573 參賽復盤:失誤與成長的算法筆記
比賽概況 SRM 573 Div1:250 分通過,Challenge 階段 -1 分,最終 Rating -9。連續兩場下滑,暴露出題目閱讀不細、心態控制不足
Windows 進程間通訊(IPC)全景指南:從共享文件到 COM/DCOM
前言:為什麼需要 IPC? 現代軟體架構常將功能拆分為多個獨立進程,進程間通訊(Inter-Process Communication, IPC)成為核心技術。
C語言處理中英文混排文本:字節識別與讀取技巧
中英文編碼的本質差異 在處理中英文混合的文本文件時,核心挑戰在於字符編碼的長度不一。英文字符(ASCII)佔用 1 個字節,且最高位固定為 0;而中文字符在常見