HDU 1312 Red and Black:BFS 搜尋可達區域完整解析
題目大意 給定一個 M 行 N 列的網格地圖,包含: @:起始位置(唯一) .:可通行的黑色磚塊 #:不可通行的紅色磚塊 從 @ 出發,只能上下左右移動,求
C++ Windows 開發:使用 COM 介面建立捷徑完整指南
前言 在 Windows 開發中,程式化建立捷徑(.lnk 檔案)是常見需求。雖然可以透過 Shell 擴充功能或腳本達成,但使用原生 COM 介面 IShel
編譯原理實驗:詞法分析器 - 有限狀態自動機 C 實現
實驗目標 實現一個詞法分析器,識別輸入文本中的 Token 類別:標識符、常數(整數/實數/科學計數法)、運算符、界符、保留字。輸出格式:(類別碼, Token
HashMap 設計原理與 C 語言輕量級實現
數據結構分類視角 從數據關係看,集合分為兩類: 關係型:如鏈表、樹,通過指針關聯元素。優勢:插入/刪除 O(1) 或 O(log n);劣勢:查找需遍歷。 位
ZOJ 1028:Flip and Shift - 奇偶性不變量與排列組合判定
問題描述 有 n 個球排成一行,黑球用 1 表示,白球用 0。允許兩種操作: Flip:交換位置 i 和 i+2 的球(間隔一個)。 Shift:整體循環左移
POJ 2955:Brackets - 區間 DP 求最長合法括號子序列
問題描述 給定由 (, ), [, ] 組成的字符串(長度 ≤ 200),求其最長合法括號**子序列**的長度。子序列不要求連續,但須保持相對順序。多測試用例,
C++ 類自動映射 Google Protobuf 消息 - 工具設計與實踐
背景動機 Google Protocol Buffer (protobuf) 是高效的二進制序列化框架,但其生成的 C++ 類冗餘大、依賴庫重、不適合直接作為業
POJ 3686:The Windys - KM 算法解決任務分配最小化平均完成時間
問題描述 M 個車間,N 個訂單。訂單 i 在車間 j 需時 Zij。每個訂單須在單一車間完成,車間同一時間只能做一個訂單。目標:最小化 N 個訂單完成時間的平
HDU 2952:Counting Sheep - 網格連通分量計數 (BFS/DFS)
問題描述 給定 H×W 網格,# 代表羊,. 代表草地。上下左右相鄰的羊屬於同一群。求羊群數量。多測試用例 (T ≤ 100),H,W ≤ 100。 算法思路
HDU 1515:Anagrams by Stack - 棧排列生成與 DFS 搜尋
問題描述 給定源單詞和目標單詞(長度相同),求所有合法的棧操作序列(i=push, o=pop),使得源單詞經棧操作後輸出目標單詞。序列需按字典序輸出(i <
Qt 4 + VS2010 程式打包部署完整指南
部署目錄結構 將編譯好的 demo.exe 及所有依賴 DLL 放入同一目錄,結構如下: demo.exe msvcp100.dll msvcr100.dll
BZOJ 1911:[Apio2010] 特別行動隊 - 斜率優化 DP 入門經典
問題描述 給定序列 a[1..n],將其劃分為若干連續段。每段代價為 A*(sum)² + B*sum + C,其中 sum 為段內元素和。求總代價最小值。n
NYOJ 84:階乘尾部零的個數 - 數論經典解法
問題描述 給定 M (0 ≤ M ≤ 10⁷),求 M! 的十進制表示末尾連續 0 的個數。多組測試數據 (N ≤ 100)。 核心數論洞察 末尾的 0 來源
HDU 2529:拋體運動求最大高度 - 物理建模與三角代換解析
問題描述 已知初速度大小,求拋體能達到的最大高度 H。需推導公式並編程計算。(原題圖片為公式推導過程,此處以文字重現)。 物理建模 設拋出角度為 θ,重力加速
UVA 11178:莫雷三角形定理 - 向量旋轉與直線相交幾何解法
問題背景 莫雷三角形定理指出:任意三角形的三個內角三等分線相交形成的三角形是正三角形。本題給定三角形三頂點座標,要求計算該正三角形的三個頂點座標(保留 6 位小
LeetCode 48:旋轉圖像(矩陣原地順時針旋轉 90 度)
問題描述 給定一個 n × n 的二維矩陣,將其原地順時針旋轉 90 度。不允許使用額外矩陣空間。 核心洞察:層層剝洋蔥 矩陣旋轉可視為一圈圈「環」的旋轉。最
LeetCode 33:搜尋旋轉排序數組(無重複元素)
問題描述 給定一個無重複元素的旋轉排序數組,搜尋目標值並返回其索引,不存在返回 -1。例如 [4,5,6,7,0,1,2] 中搜尋 0 返回 4。 核心觀察