快速排序核心原理與 C 語言實現:從哨兵機制到遞歸分治全圖解
算法核心思想 快速排序採用分治策略:選基準數,將數組分為「小於基準」與「大於基準」兩部分,遞歸處理子數組。關鍵在於一次分區過程。 雙向哨兵分區圖解 以序列 6
藍橋杯真題:錯誤票據——尋找斷號與重號 ID
題目背景 某單位發放連續編號票據,錄入時發生一處錯誤:導致某 ID 缺失(斷號),另一 ID 重複(重號)。輸入 N 行雜亂 ID,找出斷號與重號(斷號不在最大
JLOI 2014 聰明的燕姿:約數和與 DFS 枚舉質因子深度解析
問題核心 給定 M(x) 為 x 的約數和,求所有滿足 M(x) = n 的正整數 x。約數和是積性函數,利用質因子分解可轉化為子問題遞歸求解。 數學基礎 設
LeetCode 120 三角形最小路徑和:動態規劃 O(n) 空間優化解法
題目大意 給定一個三角形數組,從頂點到底邊尋找一條路徑,使路徑上數字之和最小。每步只能移動到下一行相鄰的兩個數字之一。要求空間複雜度 O(n),n 為三角形高度
BZOJ 3813 奇數國:樹狀數組維護質因子指數求區間歐拉函數
問題轉化 求區間乘積的歐拉函數 φ(∏ a[i])。利用公式 φ(n) = n ∏(1 - 1/p),只需維護區間乘積與各質因子出現情況。 核心技巧:質因子指
C++ 繼承 vs 組合:設計選擇與封裝性對比
兩種代碼復用方式 sound(); } // 委託 }; 繼承的脆弱性 當基類接口變更(如返回類型從 int 改為 Sound*),所有派生類及使用派生類的
HDU 1029 Ignatius and the Princess IV:Boyer-Moore 投票算法找眾數
題目大意 給定奇數 N 和 N 個整數,其中必有一個數出現次數 ≥ (N+1)/2。求該數(眾數)。多測試用例,EOF 結束。 核心觀察 出現次數超過一半的元
C/C++ 變量聲明與定義:extern、聲明定義分離與編譯單元
聲明 vs 定義 聲明:告知編譯器標識符的類型、名稱、參數列表,不分配存儲空間。 定義:在聲明基礎上分配存儲空間,可能初始化。 例子: int a;
2016 藍橋杯省賽題解回顧:DFS、貪心與二分綜合應用
比賽概況 2016 年藍橋杯省賽,題目以 DFS、貪心、動態規劃為主,難度中等。以下為關鍵題目解法回顧。 題目 1:撕郵票(枚舉子集 + 連通性判斷) 在 5
Farey Sequence:歐拉函數前綴和求解分數序列長度
題目大意 Farey 序列 Fn 定義為:所有分母 ≤ n、分子分母互質、真分數(分子 < 分母),按值升序排列。 例如: F2 = {1/2} F3 = {1
HDU 2588 GCD:歐拉函數求解 gcd(i,n) > m 的計數
題目大意 給定 n, m,求滿足 1 ≤ i < n 且 m 的整數 i 的個數。多測試用例。 數學轉化 gcd(i, n) 的值必然是 n 的**約數*
C++11 Lambda 表達式入門詳解:語法、捕獲、可變性、轉換與實戰
Lambda 為什麼有用? 在函數內部快速定義「一次性」可調用對象,無需單獨寫函數/仿函數類。常用於 STL 算法自定義邏輯、多線程回調、延遲計算等場景。 完
HDU 4300 Clairewd's Message:字符映射 + KMP 求最短明文
題目大意 給定 26 字母映射表(密文字母 → 明文字母),及一個「密文+明文」拼接串(明文部分可能不完整)。求明文最小可能長度(即最短能自洽的明文)。 核心
HDU 3065 病毒侵襲持續中:AC 自動機統計模式串出現次數
題目差異 HDU 2896 只需判斷「是否出現」,本題要求統計 n 個模式串在一個長文本(≤ 2×106)中**各自出現的次數**。 核心修改點 match
HDU 2896 病毒侵襲:AC 自動機多模式匹配模板題詳解
題目大意 給定 n 個病毒特徵串,再給 m 個網頁內容串。對每個網頁,輸出出現過的病毒特徵串編號(按輸入順序),並統計總共多少個網頁中毒。 AC 自動機核心結