狀態壓縮 DP 入門:鋪地磚問題 (hihoCoder 1048) 深度解析
問題描述 在 N × M 網格中,使用 1×2(橫放)與 2×1(豎放)磚塊鋪滿整個區域,求方案數。N ≤ 11, M ≤ 11。 狀態壓縮核心思想 逐行掃描
HDU 1712:分組背包問題詳解與 AC 代碼
問題描述 有 n 組物品,每組 m 個,每組必須恰好選擇一個(或不選?題目通常為恰好一個)。背包容量 V,最大化總價值。此為標準分組背包模型。 動態規劃方程
UVA 10817 - Headmaster's Headache:狀態壓縮 DP 經典題
題目背景 校長需招聘教師覆蓋所有課程,每位教師可教特定科目並要求薪資。目標:以最小總薪資覆蓋所有必修與選修課程。n ≤ 20 門課程,m ≤ 100 位候選教師
HDU 3790:雙權值最短路徑(距離優先,費用次之)
題目描述 給定無向圖,每條邊有 長度 d 與 花費 p。求從 s 到 t 的最短距離,若最短距離有多條路徑,則輸出花費最小者。n ≤ 1000, m < 100
HDU 2962:最短路徑 + 二分查找求解最大高度限制
題目大意 給定無向圖,每條邊有長度與高度限制。從起點 start 到終點 End,車輛高度不得超過路徑上所有邊的最小高度限制。在滿足高度限制前提下,求最大可通行
HDU 1690:Floyd-Warshall 算法求解多源最短路徑
題目背景 HDU 1690 是一道經典的最短路徑問題,給定多個測站之間的距離與費用計算規則,要求回答多組查詢:兩站之間的最小花費,或不可達。 核心思路:Flo
C++ 命名空間完全指南:解決大型專案命名衝突的利器
前言:為什麼需要命名空間? 在企業級 C++ 開發中,專案往往包含海量的類別、函式,且大量引入第三方函式庫。這不可避免地會導致同名標識符衝突。Java 透過套件
POJ 1459 Power Network:多源多匯最大流經典模型與 EK 實作
問題建模 電力網絡包含發電站、用戶、調度節點及輸電線。每節點 u:供電 s(u)≥0、發電 0≤p(u)≤pmax(u)、用電 0≤c(u)≤min(s(u),
HDU 分派對題:二分答案求最大等體積派對切法
問題描述 有 N 個圓柱形派對(高度皆為 1,半徑 r_i 不同),F 位朋友加上自己共 F+1 人。每人分得一塊派對(不可拼湊多塊),且體積必須完全相同。求最
HDU 2102 A計劃:雙層迷宮 BFS 最短路徑救公主
題目情境 公主被關在兩層迷宮中,入口 S(0,0,0),公主位置 P,時空傳送門 #,牆壁 *,平地 .。騎士同層上下左右移動耗 1 時刻,層間僅能通過傳送門瞬
BZOJ 3901 Magic:最小割建圖技巧與網絡流解法深度解析
問題重述 給定有向圖,每點 i 有權值 a[i] 及歸零成本 b[i]。一點的「代價」定義為其所有出邊指向點中權值最大者。可選擇付出 b[i] 將某點權值歸零。
HDU 1255 矩形覆蓋面積:線段樹掃描線求至少覆蓋兩次的區域面積
題目大意 給定平面上 N 個邊平行於座標軸的矩形,求被覆蓋至少兩次的區域總面積。輸入包含多組測資,每組第一行為矩形數 N (1 ≤ N ≤ 1000),接著 N
HDU 2191 多重背包:模板化實現避免低級錯誤
問題背景 經典多重背包問題,每種物品有數量限制。作者因 i-- 寫成 i++ 等低級錯誤 WA 多次,決定將多重背包代碼模板化。 模板化設計:三大核心函數 將
POJ 1056 IMMEDIATE DECODABILITY:字典樹判斷前綴碼
問題描述 一組二進制編碼稱為「立即可解碼」當且僅當沒有任何編碼是另一個編碼的前綴。給定多組編碼集合(每組以單獨的 9 結束),判斷每組是否立即可解碼。 解題思
HDU 1588 Gauss Fibonacci:矩陣快速冪 + 矩陣和二分
問題描述 給定 k, b, n, M,計算 Σ f(g(i)) (0 ≤ i < n) mod M,其中: 等差數列:g(i) = k*i + b (k, b
C++ 常對象詳解:定義、用法與最佳實踐
什麼是常對象? 常對象(const object)是指常類型對象,即對象常量。一旦初始化,其值不能被修改。 定義語法 class_name const obj
HDU 2852 KiKi's K-Number:樹狀數組求第 K 大數
問題描述 動態維護一個數集,支援三種操作: 0 a:插入數字 a 1 a:刪除數字 a(若不存在報錯) 2 a k:查詢 a 之後的第 k 大數(即大於 a
HDU 5182 PM2.5 城市空氣品質排序問題解析與實作
問題背景與描述 現代城市空氣品質評估常以 PM2.5 濃度作為指標,數值越低代表空氣品質越好。傳統做法是依 PM2.5 含量由低到高排序城市,但這存在邏輯缺陷: