BZOJ 3110 [ZJOI2013] K大數查詢 —— 線段樹套線段樹 + 二分答案(主席樹前身)
BZOJ 3110:N, M ≤ 50000,兩種操作: 區間加值:[a, b] 每個位置插入數 c 區間第 K 大:查詢 [a, b] 中第 c 大的數
LeetCode 筆記:Range Sum Query 2D —— 二維前綴和矩陣區間求和 O(1) 查詢
LeetCode 304:給定不可變二維矩陣,多次查詢子矩陣 (row1, col1) 到 (row2, col2) 的元素和。構建 二維前綴和 輔助矩陣,構造
HDU 1541 Stars —— 樹狀數組入門:二維偏序統計星星等級
HDU 1541:給 N ≤ 15000 顆星星,座標 (X, Y),0 ≤ X, Y ≤ 32000。輸入已按 Y 升序、同 Y 按 X 升序。星星等級 =
C/C++ 代碼優化建議清單:從分支預測到內存佈局的 30 條實戰經驗
代碼優化應在「功能正確」後進行。本文整理 30 條 C/C++ 低層優化建議,涵蓋分支、內存訪問、函數調用、數據結構、編譯器協作等維度,適合高性能計算、遊戲引擎
LeetCode 筆記:Majority Element II —— 摩爾投票法推廣求超 n/3 眾數
⌊n/3⌋ 的元素。要求 O(n) 時間、O(1) 空間。關鍵洞察:這樣的元素最多只有 2 個 n)。 一、摩爾投票法推廣(雙候選人) 維護兩組 (candi
C/C++ 圖像二進制存儲與讀取:以 CIFAR-10 格式為例
深度學習數據集(MNIST、CIFAR-10)常以二進制格式分發。本文以 CIFAR-10 為例(32×32 彩色圖,標籤 1 byte + 像素 3072 b
HDU 3294 Girls' Research —— Manacher 算法求最長回文子串(字符映射變體)
HDU 3294:給定一個字符 ch 代表真正的 a,即字符表循環偏移。將輸入字串按偏移映射為真實字串,再求長度 ≥ 2 的最長回文子串,輸出起終位置(原串下標
BZOJ 2648 SJY 擺棋子 —— K-D Tree 動態最近鄰查詢(插入 + 查詢)
BZOJ 2648:平面上動態維护黑棋子集合,支持兩種操作(N, M ≤ 5×10⁵): 插入黑棋 (x, y) 查詢白棋 (x, y) 到最近黑棋的曼哈頓距
C++ 程序員如何向 Java 工程師解釋 extern "C" 的作用與原理
extern C 是 C++ 與 C 互操作的核心橋樑,指示編譯器對被修飾的函數/變量採用 C 語言鏈接約定(不進行 Name Mangling),使 C++
C/C++ 文件路徑解析與合成:_splitpath / _makepath 與 std::string 實現
CRT 提供 _splitpath(解析)與 _makepath(合成)兩個函數,配合 _MAX_PATH 等常量,能輕鬆拆解/組裝 Windows 路徑。若只
《從零開始學 Swift》Day 71 —— Swift 與 C/C++ 混編:數據類型映射完整表
Swift 無法直接使用 C 類型,Apple 提供了對應的 Swift 類型封裝。本文整理基本類型映射表與指針類型映射表,並演示構造方法與互轉技巧。 一、C
C/C++ 學院 0907 —— 象棋五子棋編譯錯誤排查與經典查找排序算法實現集錦
本文記錄 MFC 專案編譯常見錯誤(MBCS/Unicode、PDB 格式不兼容)解決方案,並整理了插值查找、斐波那契查找、插入排序、堆排序、二路插入、非遞歸快
重學 C++ (十二) —— 模板特化與偏特化完整指南
模板特化允許為特定類型提供定制實現;偏特化則在多參數模板中僅特化部分參數。本文系統梳理類/函數模板的完全特化、偏特化語法與匹配優先級規則。 一、模板基礎回顧
C++11 智能指針 unique_ptr 使用場景與獨佔所有權語義詳解
std::unique_ptr 是 C++11 引入的獨佔所有權智能指針,不可複製,只能移動。旨在替代已棄用的 auto_ptr,提供數組支持(delete[]
BZOJ 2038 小 Z 的襪子 —— 莫隊算法離線區間查詢同色概率
BZOJ 2038:N, M ≤ 5×10⁴,N 隻襪子,M 次查詢 [L, R],求隨機抽取兩隻顏色相同的概率(最簡分數)。經典莫隊算法離線模板題。 一、數
BZOJ 2821 作詩 —— 區間查詢出現偶數次的數字種類數(分塊 + 預處理)
BZOJ 2821 強制在線查詢:給定長度 n ≤ 10⁵ 的數列,m ≤ 10⁵ 次查詢 [L, R],求區間內出現次數為正偶數的不同數字個數。查詢需解密:L
C++ 程序員如何向 Java 工程師解釋「引用」與「指針」的區別
Java 只有引用傳遞(本質是指針值傳遞),沒有 C++ 情意的「引用」與「指針」雙重機制。本文從 Java 開發者視角,用對比方式梳理 C++ 引用的本質與差
C/C++ 根據文件路徑自動創建同名子目錄工具類
在圖像處理、數據分析流程中,常需將處理結果保存到「輸入文件所在目錄下、以文件名命名的子目錄」中。本文封裝一個跨平台兼容的工具類 CreateSubfolder,