POJ 3040 Allowance:貪心策略求最大發薪週數
問題描述 農夫約翰有 N 種面額的硬幣(1 ≤ N ≤ 20),每種面額是下一種面額的整數倍(如 1, 5, 10, 50 分)。每種硬幣有限數量。每週需支付貝
POJ 2762:從 u 到 v 還是從 v 到 u?——強連通分量縮點與拓撲排序解法
問題描述 給定一個有向圖,判斷任意兩個頂點之間是否至少存在一條單向路徑(即從 u 到 v 或從 v 到 u 至少有一條路徑可達)。若圖滿足此性質,輸出 Yes,
POJ 3225 区间集合操作:線段樹維護交、並、補、差
問題描述 實現實數軸上區間集合的動態操作: U l r:並集 (union),將 [l,r] 加入集合 I l r:交集 (intersection),保留與
CS107 Programming Paradigms 斯坦福大學課程筆記:Scheme、Python、Haskell 多範式編程精華
課程概覽 斯坦福 CS107《Programming Paradigms》由 Jerry Cain 講授,涵蓋函數式編程、面向對象、並發、內存模型等核心範式。本
POJ 3134 Power Calculus:IDA* 求最少乘除運算次數
問題重述 從 x 出發,通過乘法/除法(中間結果指數必為正整數)得到 xⁿ。求最少運算步數。n ≤ 1000。 IDA* 搜索框架 迭代加深深度優先搜索:從
HDU 2871 Memory Control:線段樹維護內存區間分配與釋放
問題描述 模擬內存管理:總大小 N (≤50000)。操作: Reset:釋放所有內存 New x:分配大小 x 的連續塊,首次適配(最低地址),輸出起始地址
ZOJ 1076 Gene Assembly:貪心算法求最大不重疊外顯子鏈
問題描述 同 ZOJ 1076 / POJ 類似題。給定 n 條外顯子區間 [start, end],求最大 cardinality 的不重疊區間子集(即區間調
POJ 3106 Flip and Turn:矩陣變換序列的 2x2 指示矩陣優化
問題描述 給定 m×n 字符矩陣,應用最多 100,000 次操作:主對角線轉置(1)、副對角線轉置(2)、水平翻轉(H)、垂直翻轉(V)、順時針旋轉 90/1
C++ 通過基類註冊表調用兄弟類實例:跨層級協作模式
問題場景 類 B 和 C 繼承自基類 A。C 需要調用 B 的方法,但不想直接持有 B 的指針(耦合、生命週期管理困難)。解決方案:在基類 A 中維護一個靜態註
POJ 3134 Power Calculus:冪運算最少步數 IDA* 搜索
問題描述 從 x 出發,通過乘法/除法運算已得到的冪次,求得到 x^n 的最少運算次數。運算中間結果必須為正整數冪次(不允許負指數)。n ≤ 1000。 為什
代理模式 C++ 實現:控制對象訪問的結構型模式
模式定義 代理模式為其他對象提供一個代理以控制對這個對象的訪問。代理對象與真實對象實現相同接口,客戶端通過代理間接操作真實對象。 適用場景 遠程代理:為不同
UVA 11012 Cosmic Cabbages:三維曼哈頓距離最大值枚舉技巧
問題描述 給定 n 個三維點,求任意兩點間曼哈頓距離 |x1-x2|+|y1-y2|+|z1-z2| 的最大值。n ≤ 1e5,多測試用例。 核心技巧:符號枚
UVA 11106 Rectilinear Polygon:矩形多邊形判斷與周長計算
問題描述 給定 n 個整數坐標點,判斷它們能否構成一個簡單(不自相交)矩形多邊形(邊平行坐標軸,頂點在給定點集,每頂點一橫一豎兩條邊)。若能,輸出周長;否則輸出
UVa 10771 Barbarian Tribes:約瑟夫環變體的數學規律
問題描述 n 個 Gared (G) 和 m 個 Keka (K) 圍成一圈。每次數 k 個人殺掉,連續殺兩個。若殺掉的兩人同屬一族,補一個 G;若異族,補一個
Boost 進度條組件 progress_display 使用詳解
簡介 boost::progress_display 是 Boost 庫中一個輕量級的控制台進度條組件,適合在命令行程序中顯示長時間任務的進度。頭文件:<
C/C++ 多線程監控 Lua 腳本運行:設計與實現指南
需求背景 在遊戲服務器、嵌入式腳本引擎等場景中,Lua 腳本可能因死循環、長時間計算導致主線程阻塞。需要一個監控線程定期檢查腳本執行時間,超時則強制終止(如 l
LeetCode 105 從前序與中序遍歷構造二叉樹:遞歸分治法詳解
問題描述 給定二叉樹的前序遍歷 preorder 和中序遍歷 inorder,構造原二叉樹並返回根節點。假設樹中無重複值。 遞歸分治核心邏輯 前序遍歷第一個