POJ 3281 Dining:最大流模型解決牛的飲食偏好問題
問題背景 有 N 隻牛、F 種食物、D 種飲料。每隻牛有自己喜歡的食物和飲料子集。每種食物/飲料只能供一隻牛使用。求最多能滿足多少隻牛(即每隻牛獲得一種喜歡的食
九度 OJ 最短路徑問題:雙權值 Dijkstra 算法詳解
問題描述 給定 n 個點、m 條無向邊,每條邊有長度 d 和花費 p。給定起點 s 和終點 t,要求輸出從 s 到 t 的最短距離及其對應的最小花費。若最短距離
九度 OJ 1006:ZOJ 字符串判定問題詳解
問題描述 給定一個僅包含字符 z、o、j 的字符串,判斷它是否能被判定為 Accepted(AC)。判定規則如下: 字符串 zoj 本身可以 AC; 若字符串
Codility Lesson 2 練習題解析:Perm-Check、Frog-River-One、Max-Counters
題目一:Perm-Check(排列檢查) 問題:給定長度 N 整數數組 A,判斷是否為 1..N 的排列(每數恰現一次)。N ≤ 10⁵,要求 O(N) 時間空
HDU 1521 排列組合:指數型母函數求多重集排列數
題目大意 有 n 種元素,第 i 種最多可用 a[i] 次。求長度為 m 的排列總數(模 10000 可選,原題無模)。 指數型母函數建模 第 i 種元素的指
HDU 1069 Monkey and Banana:箱子堆疊最高塔(DP 與記憶化搜索雙解)
題目大意 有 n (≤30) 種箱子,每種無限供應。箱子尺寸 (x,y,z) 可任意旋轉(任意兩維為底,第三維為高)。堆疊規則:上層箱子底面兩維嚴格小於下層對應
C++ 虛析構函數:正確釋放派生類資源的關鍵
問題背景 基類指針刪除派生類對象時,若基類析構函數非虛,則僅調用基類析構函數,導致派生類資源(內存、文件句柄、鎖等)洩漏。 核心規則 基類析構函數必須聲明為
POJ 2429 GCD & LCM Inverse:Pollard's Rho 大數因子分解求解
題目大意 給定 GCD = a, LCM = b,求滿足條件的原始數對 (x, y) 使得 x+y 最小。若多解輸出任意。a, b ≤ 2³¹-1。 數學轉化
Codeforces 143B:金融格式化輸出(貨幣格式轉換)
題目大意 將輸入數字字符串(長度 ≤100)轉換為「金融格式」: 整數部分每 3 位加逗號分隔(從低位向高位)。 小數部分保留 2 位(不足補 0,超出截斷不
SPOJ 3273 Treap:平衡樹實現動態序列操作
題目大意 維護一個整數集合,支持四種操作(n≤200000): I x:插入 x(若已存在忽略) D x:刪除 x(若不存在忽略) K x:查詢第 x 小元素
HDU 2110 Crisis of HDU:指數型母函數求組合方案數
題目大意 有 n 種物品,第 i 種價值 value[i]、數量 num[i]。求從中選取若干物品,使總價值恰為 sum/3 的方案數(模 10000)。若 s
HDU 4631 Sad Love Story:最近點對分治 + 暴力優化求解
題目大意 給定生成規則的 n (≤500000) 個點,需計算特定函數值。核心子問題:動態維護點集,反覆查找最近點對並刪除該對及其之後的點。 三種解法對比
HDU 2108 Shape of HDU:叉積判斷凸多邊形
題目大意 給定 n 個點按順序構成的多邊形(n ≤ 10000),判斷其是否為凸多邊形。輸入以 0 結束。 幾何核心:叉積判斷轉向方向 對於連續三點 p[i]
原地歸並排序:O(1) 空間複雜度 Merge Sort 實現
背景與挑戰 標準歸並排序合併階段需要 O(n) 輔助空間。本文實現 完全原地合併,空間複雜度 O(1)(不計遞歸棧),適合內存受限場景。 核心思想:合併時右移
LeetCode Surrounded Regions:BFS/DFS 邊界連通分量標記法
題目大意 給定 m×n 棋盤,每格為 X 或 O。將所有 完全被 X 包圍 的 O 區域翻轉為 X。邊界上的 O 及與其連通的 O 不翻轉。 核心思路:反向思
POJ 1698 - Alice's Chance:最大流建模電影排期
問題描述 N 部電影,每部:可拍攝星期幾 (7 位 0/1)、需拍攝天數 D、截止週數 W。每天最多拍 1 部。問能否全部安排。N≤20, D≤50, W≤50
POJ 1236 / LA 4287 - Tarjan 算法求強連通分量與縮點入出度
問題背景 有向圖求強連通分量 (SCC),縮點後得到 DAG。統計入度為 0 的分量數 (a) 和出度為 0 的分量數 (b)。答案:單個分量輸出 0;否則輸出
UVALive 2326 - Moving Tables:貪心區間調度,O(n log n) 排序+掃描
問題描述 教室走廊兩側各有房間。搬運任務:從房間 a 到 b,佔用走廊區間 [min(a,b), max(a,b)],耗時 10 分鐘。同一時間走廊區間不能重疊