C++ 命名空間詳解:解決全域標識符衝突的利器
前言 在 C 語言中,程式的全域變數作用域僅有一個,所有全域標識符共享同一作用域。在多人協作開發時,極易導致標識符命名衝突。為了解決這一問題,C++ 引入了「命
C++ 對象初始化深度解析:構造函數、初始化列表與最佳實踐
C++ 對象初始化深度解析 C++ 對象創建時經歷內存分配與構造函數執行兩階段。理解初始化細節對寫出高效、正確的代碼至關重要。 構造函數的隱式生成與抑制 編譯
HDU 5151 Sit sit sit 區間 DP 詳解
HDU 5151 Sit sit sit 區間 DP 詳解 給定長度 N 的序列,每個位置有顏色值。區間 [l, r] 的方案數定義為:選擇一個位置 k 放置最
HDU 3785 尋找大富翁:Top-M 查找優化
HDU 3785 尋找大富翁:Top-M 查找優化 給定 n 個人的財產,求前 m 大的值(m ≤ 10)。多測試用例,n ≤ 100,000,m 很小,適合部
HDU 5147 Sequence II 樹狀數組求逆序三元組
HDU 5147 Sequence II:樹狀數組統計逆序三元組 給定長度 N 的排列,求滿足 i < j < k 且 a[i] > a[j]
HDU 5148 Cities 樹形 DP 詳解:最小化邊權經過次數
HDU 5148 Cities 樹形 DP 詳解 給定一棵帶權樹,需選擇 K 個節點作為「城市」,使得所有城市之間的路徑上邊被經過的總次數乘以權值之和最小。經典
LeetCode 旋轉數組搜索 二分查找進階技巧
LeetCode 旋轉數組搜索:二分查找進階技巧 在一個可能經過旋轉的有序數組中搜索目標值。例如 [4,5,6,0,1,2] 是 [0,1,2,4,5,6] 旋
HDU 1213 How Many Tables 並查集入門經典題解
HDU 1213 How Many Tables 並查集入門經典題解 這是一道並查集(Disjoint Set Union, DSU)的入門經典題目。題目描述:
HDU 5155 Harry And Magic Box 動態規劃解法詳解
HDU 5155 Harry And Magic Box 動態規劃解法詳解 這是一道經典的動態規劃題目,要求計算在 i×j 的矩陣中放置寶石的方案數。核心思路是
C++ 運算符重載完全指南:機制、方式與典型案例
C++ 運算符重載完全指南:機制、方式與典型案例 重載機制 一元運算符:@obj → operator@(obj) 二元運算符:obj1 @ obj2 →
無鎖消息隊列深度解析(三):RingBuffer 設計、CAS 原子操作、偽共享優化
RingBuffer 無鎖隊列核心結構 環形緩衝區用數組存儲,頭尾指針用**單調遞增序號**(非指針)標識位置。 容量取 2^N,索引計算:`index = s
C++ Primer 學習筆記 Chapter 1:類型系統與 IO 流基礎
C++ Primer 學習筆記 Chapter 1:類型系統與 IO 流基礎 核心概念:類型 類型是程序設計中最基礎的概念,贯穿整個 C++ 學習過程。類型決
ConcurrentHashMap 線程安全陷阱與 synchronized 正確用法
ConcurrentHashMap 線程安全陷阱與 synchronized 正確用法 問題現象 使用 ConcurrentHashMap 並發執行 8 個線
BZOJ 2508:動態直線集合的最小距離平方和查詢
BZOJ 2508:動態直線集合的最小距離平方和查詢 題目大意 維護平面直線集合,支持三種操作: 添加直線(給兩點式) 刪除直線 查詢到所有直線距離平方和最
LeetCode 136 Single Number:異或運算巧解單一元素
LeetCode 136 Single Number:異或運算巧解單一元素 題目要求 給定整數數組,除一個元素出現一次外,其餘均出現兩次。要求 O(n) 時間
POJ 2828 Buy Tickets:線段樹逆向構建隊列
POJ 2828 Buy Tickets:線段樹逆向構建隊列 題目大意 n 人排隊,每人有值 val 與插入位置 pos。第 i 人插入當前隊列的第 pos[
基於快速排序分區的 Top-K 問題優化解法
基於快速排序分區的 Top-K 問題優化解法 問題背景 從 n 個元素中找出前 K 大元素(K ≪ n)。完全排序 O(n log n) 過於昂貴,利用快速排
POJ 1743 Musical Themes:後綴數組求最長重複主題
POJ 1743 Musical Themes:後綴數組求最長重複主題 題目大意 給定長度 N ≤ 5000 的音符序列(值 1..88),尋找最長「主題」: