LeetCode Basic Calculator II:中綴轉後綴表達式求值完整實現
問題描述 計算包含 + - * / 和非負整數的表達式字符串,整數除法向零截斷。不使用 eval。如 3+2*2 = 7。 兩步走策略:中綴 → 後綴 → 求
HDU 3001 Travelling:狀態壓縮 DP 解決受限 TSP(三進制狀態)
問題建模 n ≤ 10 城市,m 條雙向邊(有費用)。需訪問**所有城市至少一次、至多兩次**,起點任意,求最小總費用。 經典 TSP 狀態 dp[mask][
Java RandomAccessFile 隨機讀寫文件:定位、跳過、讀寫字節完整示例
RandomAccessFile 核心能力 支持**隨機訪問**文件任意位置: - seek(long pos):移動文件指針。 - skipBytes(int
HDU 1505 City Game:最大全 1 子矩陣的直方圖法 O(n²) 解法
問題描述 m×n 網格,每格 F (空地) 或 R (障礙)。找全 F 的最大面積矩形,輸出面積×3(每格 3 平方單位)。 核心轉化:逐行構建高度直方圖 對
C++ 成員函數返回引用的三種接收方式:拷貝構造、引用綁定、賦值操作深度對比
實驗代碼 class Test { public: Test() { cout << Test\n; } ~Test() { cout <<
UVA 11134 Fabled Rooks:優先隊列貪心解決車的放置問題
問題重述 N×N 棋盤,放 N 個車(Roak),互不攻擊(每行每列恰好一個)。第 i 個車只能放在矩形 [lx_i, rx_i] × [ly_i, ry_i]
POJ 2029 Get Many Persimmon Trees:二維樹狀數組求矩形區域最大樹木數
問題轉化 W×H 網格中有 N 棵柿子樹(坐標 1-indexed)。給定矩形大小 S×T,可平移但不可旋轉,求能包含最多樹木的位置。 等價於:在二維前綴和矩陣
LeetCode 77 組合生成:回溯法標準模板與剪枝優化
問題描述 給定 n, k,返回 [1..n] 中所有大小為 k 的組合。如 n=4, k=2 → [[1,2],[1,3],[1,4],[2,3],[2,4],
POJ 3537 Crosses and Crosses:博弈論 SG 函數求解井字遊戲必勝態
遊戲規則建模 1×n 棋盤,雙方輪流在空格打叉。首先形成 **連續三個叉** 者獲勝。等價於:在長度為 n 的區間中放置標記,不可在已標記位置放置,且放置後若出
Java SequenceInputStream 合併多個輸入流:文件拼接實戰示例
SequenceInputStream 簡介 SequenceInputStream 將多個 InputStream 邏輯串聯為一個流,讀取時依次從各子流讀取,
LeetCode 226 翻轉二叉樹:遞歸與迭代(BFS/DFS)雙重解法完整對比
問題描述 給定二叉樹根節點,交換每個節點的左右子樹,返回翻轉後的根節點。原地修改即可。 遞歸解法(最簡潔) right); return root;
UVA Live 4730 Kingdom:並查集 + 線段樹動態維護城市群統計
問題建模 平面上 N 個城市,坐標 (x,y)。操作: 1. road a b:在城市 a,b 間建路(連通)。 2. line y C:查詢直線 y = C
DFA 驅動的詞法分析器 C 實現:關鍵字、標識符、數字、運算符完整識別
設計思路 採用**確定性有限自動機 (DFA)** 識別單詞。核心數據結構: - move[state][char_class]:狀態轉移表。 - final[
LeetCode 64 最小路徑和:二維 DP 空間優化至一維完整攻略
問題描述 m×n 非負整數矩陣,從左上角走到右下角,只能向右或向下,求路徑上數字和的最小值。 二維 DP 基礎版 int minPathSum(vecto
LeetCode 91 解碼方法:動態規劃 O(n) 時間 O(1) 空間完美解法
問題重述 數字字符串按 A=1 ... Z=26 編碼。求解碼方法總數。如 12 → AB(1,2) 或 L(12),答案 2。 狀態定義與轉移 dp[i]
HDU 5274 重溫:樹鏈剖分維護路徑異或查詢與修改
樹鏈剖分核心思想 將樹分解為若干條重鏈,每條重鏈在 DFS 序中連續。任意路徑 u→v 可分解為 O(log N) 段連續區間,配合線段樹支持路徑查詢/修改。
ZOJ 3471 Most Powerful:狀態壓縮 DP 解決原子碰撞最大能量問題
問題建模 N ≤ 10 個原子,兩兩碰撞產生能量並消失一個。給定 gain[i][j] 表示 i 與 j 碰撞、j 消失產生的能量。求剩下一個原子時的最大總能量
HDU 1533 Going Home:最小費用最大流解決人房匹配問題
問題建模 網格地圖上有 n 個人(m)和 n 個房子(H)。每人走一步花費 1,上下左右移動。每房只能住一人。求所有人進房的最小總步數。 本質是**二分圖最小權