基於 TCP 協議的文件傳輸系統:C++ Socket 完整實現
本文實現一個基於 TCP 的文件傳輸系統,包含服務端與客戶端。服務端監聽連接,接收客戶端請求的文件路徑,讀取文件分包發送;客戶端發送路徑,接收文件數據落盤。雙方
冒泡排序優化:標記變量提前終止,最好情況達 O(n)
冒泡排序核心是相鄰比較交換。但對近乎有序的數據(如 2,1,3,4,5,6,7,8,9,10),首輪交換後已有序,後續輪次全是無效比較。優化思路:若某輪無交換,
兩個有序數組求第 k 小元素:從 O(k) 到 O(log m + log n) 的優化之路
給定兩個升序數組 A(長度 m)與 B(長度 n),無重複元素,求聯合後第 k 小元素(1-based)。本文展示三種方案的遞進優化。 方案一:暴力合併 —
UVa 10881 - Piotr's Ants:螞蟻碰撞與位置追蹤
問題背景:一根長度為 L 的棍子上有 n 隻螞蟻,每隻有初始位置與方向(L/R)。螞蟻以 1 單位/秒移動,相遇即掉頭。求 T 秒後每隻螞蟻的位置與狀態(L/T
POJ 2418 Hardwood Species:Trie 樹統計樹種百分比
問題描述:衛星拍攝記錄了某區域所有樹木的樹種名稱(每行一個),共不超過 1,000,000 棵樹、10,000 個樹種,名稱長度 ≤ 30 字符。要求按字母序輸
C++ STL map 嵌套使用完全指南
在實際開發中,經常需要多級映射關係,例如「學生ID → 科目 → 成績」。C++ STL 的 map 支持嵌套使用,本文通過完整示例講解雙層 map 的定義、插
二叉樹數據結構實戰:從理論到C語言完整實現
上一篇文章我們探討了樹與二叉樹的基本概念與特性,著重於理論層面。本文將深入二叉樹的實現細節,結合理論與代碼實踐,幫助你透徹掌握這項在Linux內核中廣泛應用的核
DirectShow 入門:第一個播放器 Demo (C++ COM 實戰)
DirectShow 架構速覽 DirectShow 基於 COM,核心組件: Filter Graph Manager (`IGraphBuilde
HDU 1196 - Lowest Bit:最低位 1 對應的值 (位運算經典)
題目大意 給定正整數 A (1 ≤ A ≤ 100),輸出其二進制表示中最低位 1 所代表的值 (即 `A & -A`)。 例:26 = 11010₂ → 最低
HDU 1173 - 採礦:曼哈頓距離最優基地選址 (中位數性質)
題目大意 平面上 n (≤1,000,000) 個金礦點,工人只能上下左右移動 (曼哈頓距離)。選基地位置 (x,y) 使所有礦點到基地曼哈頓距離之和最小。輸出
HDU 1862 - EXCEL 排序:多欄位排序與穩定性處理
題目大意 N (≤100000) 條學生記錄:6 位學號、姓名 (≤8 字符)、成績 [0,100]。按指定列 C 排序: C=1:學號升序。
HDU 1131 - Count the Trees:卡特蘭數與大整數乘除實現
題目大意 給定 n (1 ≤ n ≤ 100),求用 n 個不同節點構成的不同標號二叉樹數量。輸入 0 結束。 數學模型:卡特蘭數 二叉樹計數滿足遞推: h
HDU 1073 - Online Judge:模擬判題系統 (AC / PE / WA)
題目大意 比較標準輸出與用戶輸出: 完全相同 (含空白) → Accepted。 去除所有空白字符 (空格、制表符、換行) 後相同 → Pre
Windows 註冊表操作實戰:枚舉已安裝程序信息完整示例
目標 讀取 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall` 下
YUV420SP (NV21) 轉 RGBA 高效整數算法實現
格式說明 YUV420SP (NV21):Y 平面連續 (W×H),隨後 UV 交錯平面 (W/2 × H/2),每對 (V, U) — 注意順序為