Linux 內核網絡協議棧:TCP 發送 SKB 時 ip_summed 字段設置與校驗和計算流程
背景 `sk_buff` (SKB) 是內核網絡層核心數據結構。`ip_summed` 字段指示校驗和計算責任分工:由 CPU 計算還是網卡硬件卸載。本文追蹤
HDU 1425 - sort:海量數據求前 M 大數 (部分排序/堆選擇)
題目大意 N 個整數 (N, M < 1,000,000),值域 [-500000, 500000],互不相同。輸出前 M 大的數,降序。多測試用例。 算法選
C++ 內存管理進階:旁視列表、內存洩漏防範與信號量/互斥量深度對比
一、內存池與旁視列表 頻繁 `new`/`delete` 小塊內存會導致碎片、性能抖動、鎖競爭。Windows 內核提供 Lookaside List (旁視列
HDU 2673 - 癡崽 OrOrOrOrz:排序後雙指針交錯輸出
題目大意 給定 N (≤10000) 個互不相同整數,按順序輸出:最大、最小、次大、次小、第三大、第三小... 直到輸出完畢。 例:1 2 3 4 5 → 5
HDU 1236 - 排名:考生成績統計與多關鍵字排序
題目大意 多場考試。每場給定:考生數 N (<1000)、題數 M (≤10)、及格線 G、每題分值。每位考生有準考證號、解出題號列表。計算總分,篩選 ≥G 考
HDU 1106 - 排序:以 '5' 為分隔符提取整數並排序
題目大意 輸入一行數字字符串(長度 ≤ 1000),將所有 5 視為分隔符,分割得到若干非負整數(忽略前導零,全零視為 0),按升序輸出。 算法流程
Codeforces 14D - Two Paths:樹上兩條不相交路徑長度乘積最大化
題目大意 給定一棵 N 節點樹 (N ≤ 200),選擇兩條不相交(無公共節點)的簡單路徑,使其長度乘積最大。路徑長度 = 邊數。 核心思路:枚舉分割邊 任意
yaolog:輕量級跨平台 C++ 日志庫設計與實踐
項目緣起 眾多 C++ 項目僅用 `printf` 或臨時封裝類輸出日志,缺乏分級、分模塊、動態配置、遠程收集等工程級能力。重型庫(log4cpp, spdlo
HDU 4300 - Clairewd's Message:KMP 算法巧解密文與明文邊界
題目大意 給定一個單表替換密碼表 S(26 字母一一映射),以及一段攔截文本。文本結構為:完整密文 + 不完整明文(明文可能為空)。密文是明文通過映射表加密得到
《More Effective C++》讀書筆記 Item 16:80-20 法則與性能優化策略
核心觀點:80-20 法則 (Pareto Principle) 「約 20% 的代碼消耗 80% 的資源(CPU 時間、內存、磁盤 I/O、網絡帶寬);約
C/C++ 字符串核心函數手寫實現:strcpy、strcat、strlen、strcmp
教學目的 標準庫函數 `` 內部如何實現?理解指針算術、空字符終止約定、返回值約定,是掌握 C 風格字符串的關鍵。本文提供指針版純手寫實現,並解析核心邏輯。
HDU 3613 - Best Reward:拓展 KMP (EKMP) 求最大回文價值
題目大意 項鏈由 26 種寶石組成(價值可正可負)。將項鏈切一刀分為兩段。回文段價值為寶石價值和,非回文段價值為 0。求最大總價值。 即:找一個分割點,使左段和
高性能線性代數庫基準測試:Armadillo vs Eigen vs OpenCV vs 裸數組
測試動機 矩陣運算性能直接影響計算機視覺、機器學習等領域的工程效率。庫的高層抽象(表達式模板、SIMD 向量化)是否真正帶來收益?針對典型操作 SAD (Sum
UVA 11300 - Spreading the Wealth:中位數贪心經典題解
題目大意 N 個人圍成一圈,每人初始有 a[i] 金幣。每人可給左邊人金幣,目標是讓所有人最終金幣相等(平均值 M),最小化總傳遞金幣數(即 ∑|x_i|)。
C++ 技巧:將類成員函數直接作為線程回調函數
痛點 C/C++ 線程 API(如 `_beginthread`、`pthread_create`、`CreateThread`)要求回調函數簽名為 void*
C++ 實現文本統計:中英文詞頻分析與 Top-K 算法
項目背景 文本挖掘的基礎任務是詞頻統計。中英文特性差異巨大:英文單詞天然以空格分隔;中文無分隔符,需按字符編碼(如 GB2312/GBK)識別漢字邊界。本文展示
ACM 題解:九度 1061 - 成績排序 (結構體排序與 qsort)
題目大意 輸入 N 名學生信息(姓名、年齡、成績),按以下優先級排序: 成績升序 成績相同時,姓名字典序升序 姓名也相同時,年齡升序