Alchemy C 圖像縮放實戰:三次卷積插值算法完整實現
背景與動機 Adobe Alchemy (後稱 Flash C++ Compiler, FlasCC) 允許將 C/C++ 代碼編譯為 ActionScript
G++ 虛函數表深度解析:佈局、type_info 與雙重解構函數之謎
前言 C++ 虛函數表是多態實現的核心,但其具體佈局因編譯器而異。本文基於 G++ (GCC 4.7.1, Linux x86) 實測,結合 GDB 內存檢查與
Visual Studio 2010 中 SQLite3 與 C/C++ 完整集成指南
前言 SQLite 作為輕量級嵌入式數據庫,因其零配置、單文件、跨平台特性,成為 C/C++ 桌面應用首選。但官方釋出的源碼包(sqlite3.c/h/dll/
POJ 2965 飛行員兄弟冰箱問題:暴力枚舉解法詳解
問題背景 POJ 2965「The Pilots Brothers refrigerator」是一道經典的算法競賽題目。題目描述一個 4×4 的冰箱控制面板,每
排列組合生成算法全集:遞歸、迭代、位運算多種實現
數學基礎 概念符號公式含義 排列A(n,m)n!/(n-m)!從 n 取 m 有序排列 組合C(n,m)n!/(m!(n-m)!)從 n 取 m 無序選擇 性
C++ Primer 閱讀筆記:第 10 章 類的設計與實現細節
類的核心目標 C++ 類機制的目標是讓使用者定義的類型像內建類型一樣自然好用。配合繼承與模板,可將相關類組織成層次結構,表達領域概念之間的關係。 靜態成員 靜
HDU 4331 Image Recognition:樹狀數組優化對角線掃描計數
題目大意 給定 N×N 0/1 矩陣,定義「十字」為以某個 1 為中心,向四個方向延伸的連續 1 段。求所有十字的數量總和。N ≤ 1000,多測試用例。 幾
POJ 3422 KANTO:網格圖最小費用最大流雙版本實現
題目模型 N×N 網格,每格有金幣 w。從左上角走 K 次到右下角,每次只能向右/向下,經過格子收集金幣(每格每次最多收集一次)。最大化總金幣。 網路流建模
狀態壓縮 DP 經典:POJ 2411 瓷磚鋪地板完整詳解
題目重述 用 1×2(橫放)和 2×1(豎放)磚塊,無重疊無空隙地鋪滿 N×M 網格。求方案數。N, M ≤ 11。 狀態壓縮核心思想 逐行輪廓線 DP 掃描
C/C++ 中使用二進制常量的多種技巧與最佳實踐
背景痛點 C/C++ 標準(C++14 前)原生不支援二進制字面量(如 0b1010)。嵌入式開發、位運算、寄存器配置等場景頻繁需要二進制常量,長期以來開發者採
HDU 3904 A tree game:樹上刪邊遊戲的 SG 函數解法
遊戲規則 給定一棵有根樹(根為 1)。每回合玩家: 選擇一條邊刪除 移除所有與根不再連通的節點和邊 無法操作者負。Alice 先手,輸出勝者。 核心定理:
HDU 1524 A Chess Game:有向無環圖上的 SG 函數博弈詳解
題目模型 有 N 個位置,存在有向邊表示合法移動(構成 DAG)。多枚棋子獨立放置,雙方輪流移動一枚棋子,無法移動者負。判斷先手勝負。 理論基礎:SG 函數與
Ural 1095 Nikifor 3:數論構造被 7 整除的排列數
題目大意 給定一個包含數字 1,2,3,4(各至少一次)的大整數,重新排列其所有數字,使得新數能被 7 整除。輸出任一合法排列。 核心數學洞察 1234 的全
POJ 1426 Find The Multiple:BFS 構造僅含 0 和 1 的最小倍數
題目描述 給定正整數 n (1 ≤ n ≤ 200),找出最小的正整數 x,使得: x 是 n 的倍數 x 的十進位表示僅包含數字 0 和 1 x 的最高位必
HDU 4107 Gangster:線段樹區間更新與查詢完整解析
題目背景 有 n 個幫派成員,初始威望為 0。進行 m 次操作:對區間 [a, b] 內威望 小於 p 的成員增加 c,威望 大於等於 p 的增加 2c。最後輸
ZOJ 3494 BCD Code:AC 自動機結合數位 DP 完整解析
題目大意 給定區間 [a, b],求有多少整數轉換為 BCD 碼(每位十進位數字用 4 位二進位表示)後,不包含任一給定的「禁止串」。答案對 1,000,000
最小費用最大流演算法深度解析:ZKW 費用流與普通 SPFA 實現詳解
前言 最小費用最大流是圖論中極具實用價值的經典問題,廣泛應用於資源分配、任務調度、網路流量優化等領域。本文將系統梳理兩種主流實現方案:基於 SPFA 的普通費用