HDU 1114 Piggy-Bank 存錢罐:完全背包問題經典解析
題目大意 給定存錢罐空重 E 和滿重 F,以及 n 種硬幣的面值 v[i] 和重量 c[i]。每種硬幣數量無限。求裝滿存錢罐(總重量恰好為 V = F - E)
C語言鏈表初始化:指向指針的引用與二級指針深度解析
問題背景 在面試與實際開發中,通過數組初始化單鏈表是高頻考點。許多初學者會犯一個經典錯誤:直接傳遞結構體指針(node *tail)作為函數參數,試圖在函數內部
NYOJ 16 矩形嵌套問題:動態規劃求最長嵌套鏈
題目概述 給定 n 個矩形,每個矩形用長 a 和寬 b 描述。矩形 X(a,b) 可以嵌套在矩形 Y(c,d) 中,當且僅當 a<c 且 b<d,或
POJ 2892 Tunnel Warfare:線段樹維護連續區間長度
題目大意 N (≤ 50,000) 個村莊連成線,初始全通。操作: D x:摧毀村莊 x(斷開)。 R:恢復最近一次摧毀的村莊(棧)。 Q x:查詢包含 x 的
HDU 3368 Reversi:8x8 棋盤單步最大翻轉 DFS 模擬
題目大意 給定 8×8 黑白棋盤(D=黑,L=白,*=空),輪到黑方落子。規則:新黑子與現有黑子連線,中間全為白子則翻轉。求單步最多能翻轉的白子數。無合法位置輸
HDU 1074 Doing Homework:狀態壓縮 DP 最小扣分與字典序方案
題目大意 N (≤ 15) 門作業,每門有截止日期 D、耗時 C。按順序做,超過截止每天扣 1 分。求最小總扣分,並輸出字典序最小的最優順序(科目名已按字典序輸
HDU 1159 / POJ 1458 Common Subsequence:LCS 經典動態規劃
題目大意 給定兩個字符串(長度 ≤ 1000),求其最長公共子序列(LCS)長度。多測試用例,EOF 結束。 DP 狀態與轉移 dp[i][j] = 前 i
UVA 536 Tree Recovery:前序+中序重建二叉樹輸出後序
題目大意 給定二叉樹的前序遍歷和中序遍歷(字符串形式,大寫字母,長度 ≤ 26),重建樹並輸出後序遍歷。多行輸入,EOF 結束。 遞歸重建邏輯 前序第一個字
UVA 10790 交點計數:組合數學公式推導
題目大意 兩平行線上分別有 a、b 個點。每對點連線,最大化內部交點數(任意三線不交於一點)。求交點數 P(a,b)。 組合推導 交點由兩條線段產生:選上線
HDU 4628 Pieces:狀態壓縮 DP 求最少回文子序列覆蓋
題目大意 給定長度 ≤ 16 的字符串。每步可刪除一個回文子序列(不要求連續)。求刪空整個字符串的最少步數。T ≤ 10。 狀態壓縮建模 長度 L ≤ 16
UVA 10014 簡單計算:線性遞推推導 a1
題目大意 給定數列 a₀, a₁, …, aₙ₊₁ (n ≤ 3000),滿足 aᵢ = (aᵢ₋₁ + aᵢ₊₁)/2 - cᵢ (i=1..n)。已知 a₀
HDU 4620 Fruit Ninja Extreme:貪心區間調度(經典活動安排)
題目大意 給定 n (≤ 100) 個電視節目,每個有開始時間 s、結束時間 t。選擇最多互不重疊的節目數(邊界接觸不算重疊,即 t₁ ≤ s₂ 可共存)。多測
HDU 4631 Sad Love Story:動態最近點對平方和(貪心剪枝)
題目大意 平面內動態插入 N (≤ 500,000) 個點,座標由線性遞歸生成: x[i] = (x[i-1]*Ax + Bx) % Cx, y[i] = (y
HDU 1358 字符串周期判斷:KMP Next 數組應用
題目大意 1 使前綴 = A^K)。若是,輸出 i 和最大的 K。 KMP Next 數組的周期性質 對前綴長度 i,其最長真前綴後綴匹配長度為 next[
UVA 562 分硬幣:01 背包求最小差值
題目大意 最多 100 枚硬幣,面值 1~500 分。分給兩人,使兩人所得總額差值最小。輸出最小差值。 轉化為子集和問題 總和 S。目標是選一子集和盡可能接
POJ 1976 微型機車:三段連續區間最大和 DP
題目重述 有 N 輛車廂(N ≤ 50,000),每廂乘客數已知。三台微型機車,每台最多拉 M 輛連續車廂(M ≤ N/3)。機車拉取的區間互不重疊。求最大總運
UVA 375 等腰三角形內切圓堆疊:幾何級數求周長和
題目大意 給定等腰三角形底邊 b、高 h。在其內部沿高線方向依次堆疊內切圓:第一個為大三角形內切圓,之後每個圓都是上方剩餘小三角形的內切圓。當圓半徑 < 1e-
HDU 3415 環形序列長度 ≤ K 最大子段和:單調隊列優化 DP
題目重述 給定長度 N 的環形序列 A[1..N],找長度不超過 K 的非空連續子段,使其和最大。輸出最大和、起始位置、結束位置(多解優先最小起點,再優先最短長