HDU 3311 Dig The Wells:斯坦納樹模板(SPFA + 狀態壓縮 DP)
問題描述 n ≤ 5 個寺廟(特殊點),m ≤ 1000 個普通點,p ≤ 5000 條邊。每個點有挖井成本(點權),邊有建路成本(邊權)。寺廟需用水(連通到至
HDU 5025 Saving Tang Monk:BFS + 狀態壓縮(鑰匙順序 + 蛇位圖)
問題描述 N×N 迷宮,包含:起點 K、終點 T、牆 #、空地 .、蛇 S(最多 5 條)、數字鑰匙 1~9(順序獲取)。經過蛇格子第一次需額外花費 1 時間(
HDOJ 2614 Beat:DFS 搜索最大問題解決序列
問題描述 有 n < 15 個問題,編號 0~n-1。先解問題 0(耗時 0)。解完問題 i 後,解問題 j 需耗時 T[i][j]。要求每次選擇的問題耗時 ≥
UVA 10566:幾何 + 二分求解梯子交叉高度
問題描述 兩面牆寬度為 w,兩梯子長度分別為 x、y,底部分別抵住對側牆角,頂端交叉高度為 c。求牆寬 w。輸入多組 x, y, c,輸出 w(保留 3 位小數
POJ 2104 K-th Number:線段樹合併(主席樹/可持久化線段樹)
問題描述 給定長度 n ≤ 100,000 的數組 a[1..n](互不相同),m ≤ 5,000 個查詢 Q(i, j, k):求區間 [i, j] 排序後第
POJ 1222 EXTENDED LIGHTS OUT:高斯消元解異或線性方程組
問題描述 5×6 燈板,初始全滅。按下某燈會翻轉該燈及其上下左右四鄰居(共 5 燈,邊角少)。給定目標亮燈模式,求按燈方案(輸出 0/1 矩陣)。多組測試。
POJ 2352 Stars:樹狀數組統計二維偏序(星星等級)
問題描述 給定 N ≤ 15000 顆星星的坐標 (x, y),0 ≤ x,y ≤ 32000。星星按 y 升序、x 升序輸入。定義星星等級 = 坐標左下方(x
LeetCode Combinations:回溯算法生成組合
問題描述 給定整數 n 和 k,返回 [1, n] 中選取 k 個數的所有組合。順序不限。 示例:n=4, k=2 → [[1,2],[1,3],[1,4],[
HDU 1421 搬寢室:動態規劃(排序後相鄰配對)
問題描述 有 n 件物品(重量 w_i),需選 2k 件搬運,每次搬兩件(左手一件、右手一件),疲勞度 = 兩件重量差的平方。求最小總疲勞度。2k ≤ n <
HDU 1495 非常可樂:BFS 狀態空間搜索(三杯倒水)
問題描述 有三個容器:可樂瓶(容量 S,初始滿)、杯子 N(容量 N)、杯子 M(容量 M),S = N + M,S < 101。允許任意兩容器之間倒水(倒至源
FZU 2041 Checker:貪心 + 模擬求最大空隙擴展
問題描述 給定長度 n 的 0/1 序列(1 為障礙,0 為空隙),以及操作次數 m。每次操作可將一個 1 移動到相鄰的 0 位置(即交換相鄰 0/1)。求經過
POJ 3415 後綴自動機 (SAM) 求長度 ≥ k 的公共子串數量
問題描述 給定兩個字符串 A、B(大寫字母,長度 ≤ 100,000)。求兩字符串所有公共子串中,長度 ≥ k 的子串對數(位置不同算不同子串)。 核心思路:
C++ new/delete 深度解析:operator new、placement new、數組分配、配對陷阱
new/delete 是關鍵字,不是函數 new 表達式完成兩件事:調用 operator new 分配原始內存,然後調用構造函數初始化對象。delete 反之
HDU 1170 Balloon Comes!:簡單四則運算模擬
問題描述 多組測試數據。每組給出運算符(+、-、*、/)和兩個正整數 a, b。輸出運算結果。除法結果若為整數輸出整數,否則保留兩位小數。 算法邏輯 讀入
C++ 函數調用機制深度剖析:值傳遞、引用傳遞、指針傳遞與拷貝構造
代碼場景 class Coord { public: Coord(int a=0, int b=0) : x(a), y(b) {} Coord
HDU 2578 Dating with girls (1):排序 + 二分查找 / 雙指針
問題描述 給定 n 個整數和目標值 k,求有多少對不同的數 (x, y) 滿足 x + y = k。數對視為無序,即 (x,y) 和 (y,x) 算同一對;x
POJ 3692 二分圖最大匹配:最大團轉化
問題描述 班級有 g 個女生、b 個男生(g,b ≤ 200)。女生之間互相認識,男生之間互相認識。給出 m 對「女生-男生」認識關系。求最大「團」(所有人兩兩
POJ 3020 一般圖最大匹配:Edmonds 帶花算法(Blossom)
問題描述 給定 h×w 網格(h≤40, w≤10),每格為 .(空)或 *(需覆蓋)。用 1×2 矩形(多米諾骨牌)覆蓋所有 *,最少需要多少塊?矩形不可重疊