有序陣列中統計目標數字出現次數:二分查找 O(log N) 解法
問題描述 給定一個已排序的整數陣列與目標值 k,求 k 在陣列中出現的次數。例如陣列 {1,2,3,3,3,3,4,5},目標 3,輸出 4。 兩種解法比較
NYOJ 239 月老的難題:二分圖最大匹配(匈牙利演算法/DFS)完整解析
題目大意 有 n 個男孩與 n 個女孩,編號皆為 1~n。給定 K 對可能結成幸福家庭的男女配對。每個人最多只能屬於一對。求最多能促成多少對幸福家庭(即二分圖最
ZOJ 1610 Count the Colors:線段樹區間更新與單點查詢詳解
題目大意 有一條長度為 8000 的線段,初始顏色為 -1(無顏色)。給定 n 個塗色操作,每個操作指定區間 [x1, x2] 塗上顏色 c。所有操作完成後,從
C++ 實作羅馬數字與阿拉伯數字雙向轉換完整指南
問題描述 給定一個羅馬數字(範圍 1~3999),將其轉換為阿拉伯數字;反之亦然。羅馬數字符號及對應值如下: 符號IVXLCDM 值151050100
C++ 中的邏輯非運算子(!)深度解析與技巧應用
前言 在 C++ 程式設計中,邏輯非運算子(!)是一個基礎且極具威力的工具。它不僅能反轉布林值,更能巧妙地將任意數值轉換為 0 或 1,這在條件判斷、旗標控制甚
舌尖上的 C++:逗號表達式與可變參數模板的奇妙相逢
引子:一道面試題 如何用函數(而非結構體)將可變參數包的類型名拼接為字串返回?結構體版本輕鬆實現: template<typename... Args&g
STL系列:map 容器原理與基於排序向量的實現
前言 標準庫 std::map 通常基於紅黑樹(RB-tree)實現,查找、插入、刪除均為 O(log n)。本文展示一種替代方案:使用排序向量(CSortVe
陣列數對最大差值:四大演算法深度解析與總結
問題描述 給定一個整數陣列,定義「數對之差」為:一個數字減去其右側(不包含自身)任一數字的結果。目標是找出所有可能數對之差中的最大值。例如在陣列 {2, 4,
C++ 二維數組動態內存分配完全指南:指針數組、二維指針、數組指針
基礎概念回顧 一維數組:int a[5],a 為首元素地址,&a 為整個數組地址(值相同類型不同)。 一維指針:int *p = new int[N],siz
MATLAB 手寫字符區域截取:基於邊界掃描的快速定位法
目標 從手寫體圖像中自動裁剪出字符佔據的最小矩形區域,使字符在圖像中比例最大化,便於後續特徵提取。 算法步驟 讀取圖像 A = imread(filenam
Smarty 模板引擎:自定義函數與塊函數完整指南
自定義函數(function plugin) 註冊:registerPlugin(function, myfun, myfun); 模板調用:{myfun ti
HDU 4831 Scenic Popularity:鏈表模擬最近景點查詢
問題描述 一條直線上有 n 個點,每個點要么是景點(有熱度值),要么是休閒區。休閒區會找最近的景點(距離相同取熱度較大者)。支持兩種操作: Q k:查詢熱度
HDU 4832 Chess:二維 DP 計數與組合數結合
問題大意 n×m 棋盤,國王從 (x, y) 出發,每步可移動到 8 相鄰格(含對角),共走 k 步。求走完後在棋盤內的路徑總數,模 9,999,991。 解
數據結構與算法:計數排序實現 O(n) 時間、O(1) 空間排序
題目挑戰 如何在 O(n) 時間、O(1) 額外空間內對 n 個整數排序?常規比較排序下界為 O(n log n),但若數據範圍有限(如 0~65535),可用
XTU OJ 1160 Harry Potter:位運算求最少步數到達目標
問題描述 哈利從 0 出發,目標位置 X (0 ≤ X ≤ 10^18)。每步可選:向前走 1(耗時 1),或瞬間移動到當前座標的 2 倍(耗時 1)。求到達學
Codeforces E. Lucky Queries:線段樹維護最長非遞減子序列與區間翻轉
問題描述 給定長度 n (≤ 10^6) 的字符串,僅含字符 4 和 7。需支持 m (≤ 3×10^5) 次操作: switch l r:區間 [l, r]