OpenCV Mat 數據導出二進制文件供 Matlab 讀取:跨語言數據交互實戰
場景動機 C++/OpenCV 處理圖像後,需將 cv::Mat 像素數據導出供 Matlab 分析/可視化。直接寫二進制文件最簡單高效,無需複雜 IPC/網絡
POJ 1062 昂貴的聘禮:前向星建圖 + SPFA 解決等級約束最短路
題目大意 買主(1 號)想買物品,可直接花錢買,或用其他物品交換。每個供應商有等級 L[i],買主等級 L[1]。交換雙方等級差 ≤ M。若與低等級交換,高等級
POJ 3664 Election Time:快速選擇算法 O(n) 求 Top-K 並取最大值
題目大意 N 個候選人,每人有 a(得票)和 b(屬性)。先按 a 選出前 K 名,再在這 K 人中找 b 最大者,輸出其原始編號(1-based)。N ≤ 1
POJ 3150 Cellular Automaton:循環矩陣快速冪優化至 O(n² log k)
題目大意 n 個細胞排成環,初始狀態 a[i]。每步轉移:第 i 細胞新值 = 所有滿足 min(|i-j|, n-|i-j|) ≤ d 的 j 細胞舊值之和模
POJ 2247 Humble Numbers:四指針動態規劃生成第 n 個謙遜數
題目大意 謙遜數:質因子僅含 2, 3, 5, 7 的正整數。序列:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16,
HDU 2475 Box:伸展樹 (Splay) 維護動態森林解決盒子移動問題
題目大意 有 N 個盒子,初始各自獨立。支持兩種操作: M x y:將含 x 的堆疊整體移到含 y 的堆疊頂部(若同堆忽略)。 Q x:查詢 x 所在堆疊的最
冒泡排序全解析:從基礎版到三級優化的 C++ 實現
基本原理 相鄰元素兩兩比較,逆序則交換。每輪將最大/最小元素「冒泡」到端點。穩定排序,時間 O(n²)。 版本一:雙層循環基礎版 void bubble1(i
LeetCode 38 Count and Say:字符串迭代生成「外觀數列」
題目大意 「外觀數列」遞歸定義: n=1:1 1:讀出前一項的「連續相同字符計數 + 字符」,拼成新字符串。 示例:1 → 11 → 21 → 1211 →
POJ 2996 Help Me with the Game:國際象棋棋盤模擬與坐標轉換
題目大意 輸入 17 行 ASCII 國際象棋棋盤(含邊框),輸出白方與黑方所有棋子的類型與座標(代數記譜法:a1-h8)。棋子順序:K, Q, R, B, N
模板方法模式 C++ 實戰:定義算法骨架,延遲具體步驟到子類
模式動機 多個子類共享相同算法結構,但某些步驟實現不同。模板方法在基類中定義算法骨架(最終方法),將可變步驟聲明為虛函數(基本方法),子類覆寫基本方法即可復用骨
LeetCode 40 Combination Sum II:回溯去重 + 剪枝優化
題目大意 給定候選數組 candidates(可含重複)與目標 target,找出所有不重複組合,使和為 target。每個數字在每個組合中最多用一次。輸出組合
C/C++ 內存中數據的二進制存放形式:聯合體實戰可視化
核心結論 小端序:低位字節存低地址,高位字節存高地址。 數組/結構體:首元素/首成員地址 = 對象地址 = 最低地址。 多字節類型:在內存中按小端序展開,地址
POJ 1035 Spell Checker:編輯距離 1 的字典匹配優化
題目大意 給定字典(≤ 10,000 詞,長度 ≤ 15)與查詢詞(≤ 50 詞)。對每個查詢詞: 在字典中 → 輸出 word is correct 不在
iBATIS 實戰:SQL Map 配置詳解與最佳實踐
映射文件結構 一個典型 SqlMap.xml 包含兩大部分: 模塊配置:typeAlias、cacheModel Statement 配置:select/in
LeetCode 112 Path Sum:二叉樹路徑和遞歸與迭代雙解法
題目大意 給定二叉樹根節點 root 與目標和 sum,判斷是否存在從根到葉子的路徑,節點值之和等於 sum。 遞歸解法(DFS) 思路:到達葉子時檢查累計和
POJ 1936 All in All:雙指針判斷子序列 O(n) 做法
題目大意 給定字符串 s 和 t,判斷 s 是否為 t 的子序列(即能從 t 中刪除若干字符得到 s)。多組測試,長度 ≤ 100,000。 雙指針掃描法 指
全排列生成算法:從固定 N 到任意 N 的遞歸回溯實現
問題演進 固定 4 數:四層巢狀循環,代碼冗長、不可擴展。 任意 N 數:必須用遞歸回溯,將「選下一個數」抽象為統一邏輯。 回溯核心框架 void bac
設計模式 C++ 實戰:狀態模式——將狀態相關行為封裝為類
模式動機 對象行為隨內部狀態改變而劇烈不同,且狀態轉換頻繁。若用大量 if/else 或 switch 判斷狀態,會導致代碼膨脹、難以維護、違反開閉原則。狀態模