UVa 10305:任務排序——拓撲排序經典應用
問題描述 給定 n 個任務(1..n)和 m 條依賴關係 (a, b) 表示任務 a 必須在 b 之前完成。輸出任意一個合法的執行順序。n ≤ 100,多組測試
LeetCode 112:路徑總和——從根到葉子路徑求和判斷
問題描述 給定一棵二叉樹和一個目標和 sum,判斷是否存在從根節點到葉子節點的路徑,使得路徑上所有節點值之和等於 sum。葉子節點是指無子節點的節點。 遞歸解
LeetCode 104:二叉樹的最大深度——遞歸與迭代解法對比
問題描述 給定一棵二叉樹,求其最大深度。最大深度是從根節點到最遠葉子節點的最長路徑上的節點數。 遞歸解法(DFS) 最直觀的方法:樹的最大深度 = max(左
HDU 1711:數列匹配——KMP 算法入門經典
問題描述 給定文本串 a[1..N] (N ≤ 10⁶) 和模式串 b[1..M] (M ≤ 10⁴),找到模式串在文本串中首次出現的起始位置 K(1-base
HDU 1342:Lotto——組合生成與字典序輸出
問題描述 從 k 個已排序的數字(6 < k < 13)中選 6 個,輸出所有組合。組合內數字升序,組合間按字典序排列。多組測試數據,用空行分隔,最後一組無空行
HDU 1560:DNA 序列——迭代加深搜索 (IDDFS) 剪枝優化
問題描述 給定 n 條 DNA 序列(字符集 {A,C,G,T},長度 ≤ 10),求最短公共超序列長度,即最短的一條序列,使得所有給定序列都是其子序列(不必連
HDU 3435:新圖遊戲——最小費用最大流構造環覆蓋
問題描述 給定一個有向圖(或無向圖視為雙向),要求每個頂點恰好屬於一個簡單環,且每個頂點只能屬於一個環。求滿足條件的最小總邊權和。若無解輸出 NO。 核心建模
UVA 11400:照明系統設計——貪心排序 + 動態規劃優化
問題背景 需設計照明系統,有 n 類燈具(n ≤ 1000),每類需 L 盞燈,單燈成本 C,工作電壓 V,對應電壓源成本 K。高電壓源可替代低電壓燈具(同電流
HDU 1561:樹形 DP——城堡寶物最大化選取問題
題目大意 有 N 座城堡,每座城堡有寶物值。城堡間存在依賴關係:攻克城堡 i 必須先攻克城堡 a(a=0 表示無依賴,可直接攻克)。需恰好選 M 個城堡攻克,使
LeetCode 111:二叉樹的最小深度——遞歸與邊界條件深度解析
問題描述 給定一棵二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數。注意:葉子節點是指沒有子節點的節點。 關鍵區別:最小深度 vs
HDU 1595:最短路徑邊枚舉優化——Dijkstra 算法進階應用
題目背景與核心思路 HDU 1595 是一道經典的圖論問題,要求在無向加權圖中找到從節點 1 到節點 n 的最短路徑,並進一步求出:若刪除最短路徑上的一條邊後重
POJ 1041 John's Trip:無向圖歐拉迴路 + 字典序最小路徑
尋找無向圖中從起點出發經過每條邊恰好一次並回到起點的迴路(歐拉迴路)。若多解,輸出邊編號序列字典序最小者。街道編號 1..n (<1995),路口 1..m (
LeetCode 129 Sum Root to Leaf Numbers:DFS 累積路徑數值求和
二叉樹節點值 0-9,每條根到葉路徑代表一個數字(如 1→2→3 為 123)。求所有路徑數字之和。 遞歸 DFS 參數帶入當前累積值 sum,到葉節點返回 1
UVA 10602 Editor Nottoobad:字典序排序 + 貪心最小操作數
第一個單詞必須手打,後續單詞可通過「複製上一詞」、「刪除末尾字符」、「輸入字符」三種操作構建。求最小總操作數。 貪心策略 將單詞按字典序排序。相鄰單詞共同前綴可
C++ 單向鏈表完整實現:迭代器、拷貝控制與標準庫風格接口
從零手寫單向鏈表 LsList,支援前向迭代器、隨機訪問(僅教學用)、標準容器接口(構造/賦值/插入/刪除/清空/遍歷)。 核心組件 內部節點 LNode:T
KMP 算法 next 數組深度解析:前綴後綴匹配與最短週期應用
next 數組是 KMP 核心,next[i] 表示模式串前 i 個字符(0-indexed 通常指前 i 個字符的最長真前綴同時也是後綴的長度)。 標準構建代
LeetCode 54 Spiral Matrix:螺旋順序遍歷矩陣
給定 m×n 矩陣,按順時針螺旋順序返回所有元素。例如 [[1,2,3],[4,5,6],[7,8,9]] → [1,2,3,6,9,8,7,4,5]。 分層邊
C++ 元類編程實戰(六):切入點機制實現與插件化日誌注入
接續前文,在 meta_worker 中引入切入點,實現方法調用前/後的橫切關注點(如日誌、性能監控)動態注入,支援插件化熱更新。 切入點閉包設計 templa