C/C++ 堆記憶體復用問題與指針失效風險
現象示例 int *x = new int; *x = 1; int *y = new int; *y = 2; delete x; int *z = new
HDU 1561 The more, The Better:樹形背包 DP 選城堡最大化寶物
問題描述 N 座城堡,每座有寶物值。需恰好攻佔 M 座城堡。城堡間有依賴關係:攻佔某城堡必須先攻佔其父城堡(形成森林)。求最大總寶物值。 樹形背包模型 將森
POJ 1185 炮兵陣地:狀態壓縮 DP 最大化炮兵部署
問題描述 N×M 網格 (N≤100, M≤10),每格為平原(P)或山地(H)。平原最多放一門炮,山地不可放。任意兩門炮不得互相攻擊:攻擊範圍為同行左右相鄰兩
HDU 4435 Charge Station:貪心 + BFS 最小化充電站建設成本
問題描述 N 座城市 (N≤128),城市 1 有皇宮且必須建充電站。汽車滿電可行駛 D 米。城市間距離為歐氏距離無條件進位。在城市 i 建站成本為 2^(i-
HDU 1548 A Strange Lift:優先隊列 (Dijkstra) 求最短路徑
問題描述 有 N 層樓 (1..N),電梯從 start 層移動到 end 層。第 i 層有數字 a[i],表示在該層可向上或向下移動 a[i] 層(即從 i
C++ 指標陣列與陣列指標:深度解析與範例
概念區別 陣列指標:`int (*p)[4];` —— p 是一個指標,指向「含 4 個 int 的一維陣列」。`p+1` 跳過 4 個 int。 指標陣列:
ZOJ 2972 Hurdles of 110m:動態規劃最小化跨欄時間
問題描述 110 米跨欄有 n 階段,每階段有三種跨越方式: 正常跨越:耗時 t1,消耗體力 f1。 輕鬆跨越:耗時 t2,不消耗體力。 衝刺跨越:耗時 t3
POJ 1990 MooFest:樹狀數組計算牛群通訊能量
問題描述 有 N 隻牛,每隻牛有座標 x[i] 和聽力值 v[i]。任意兩隻牛 i, j 通訊消耗能量 = |x[i]-x[j]| * max(v[i], v[
最長不重複子串:滑動窗口 O(N) 解法
問題描述 給定一個由小寫字母組成的字串(長度 ≤10000),找出最長的連續子串,使得子串中任意兩字元不同,輸出其長度。多組測試資料,以 EOF 結束。 暴力
HDU 3460 Ancient Printer:字典樹優化打印按鍵數
問題描述 有一台古老的印表機,支援三種操作: 在當前字串末尾附加一個小寫字母(1 次按鍵)。 刪除最後一個字母(1 次按鍵)。 列印當前字串(0 按鍵,但必須
POJ 1904 Kings Quest:王子與公主的完美匹配擴展
問題描述 國王有 N 個兒子(王子)與 N 位美女(公主),每位王子喜歡若干公主。已知存在一個完美匹配(每位王子娶一位他喜歡的公主,且公主不重複)。國王要求:對
UVA 10602 Editor Nottoobad:貪心策略解析與實作
問題背景 Macrohard 公司推出新版編輯器 Nottoobad,僅支援兩條語音指令:「重複上一個單字」與「刪除最後一個符號」。重複單字時會自動插入空白分隔
HDU 4616 Game:樹形 DP 的兩種遍歷視角
HDU 4616 Game:樹上收集禮物的最大價值 給定一棵樹,每個節點有禮物價值,部分節點有陷阱。最多可踩 `m` 次陷阱(第 `m` 次後不可再走),每節點
BNU 29045 派對遊戲:字典序最小分隔字符串構造
題目大意 S。若多解取字典序最小。名字長度 ≤ 30,n ≤ 1000。 核心觀察:中位數相鄰字符串 排序後,第 n/2 個(a)與第 n/2+1 個(b)
HDU 4433 密碼鎖:DP 枚舉旋轉步數求最小操作
問題重述 N 位密碼鎖,每位 0-9 循環。一次操作可選 1-3 連續位同向旋轉(向上 +1 或向下 -1,模 10)。給定初始狀態與目標狀態,求最小操作步數。
HDU 4308 拯救公主:BFS 處理傳送門與收費站
題目場景 迷宮為 r×c 格子,字符含義:Y(王子起點)、C(公主)、*(收費站,費用 v)、#(障礙)、P(傳送門,互相連通)。王子可上下左右移動,進入 *
POJ 2553 圖的底部:Tarjan 強連通分量縮點找出度零分量
題目大意 給定有向圖,求所有出度為 0 的強連通分量(SCC)所包含的原圖節點,按編號升序輸出。即縮點後的 DAG 中出度為 0 的節點對應的原節點集合。 兩