POJ 1742 Coins 多重背包優化:O(N·V) 數組標記法完整解析
問題描述 給定 n 種硬幣,第 i 種面值 c[i]、數量 cnt[i]。求不超過總額 M 的情況下,能湊出多少種不同的金額(1~M)。 約束:n ≤ 100,
C++ 多態深度解析:虛函數機制、虛表結構與底層調用原理
多態核心概念 多態允許基類指針/引用指向派生類物件,並根據物件實際類型調用對應的虛函數。三大支柱: 繼承:建立類層次結構 虛函數:基類聲明 virtu
HDU 4007 矩形覆蓋最大點數:暴力枚舉與排序優化解法
問題描述 給定 n 個平面點 (x, y) 和邊長 r 的正方形,求正方形能覆蓋的最大點數。正方形邊平行於坐標軸,點在邊界上視為覆蓋。 約束:n ≤ 1000,
POJ 1664 放蘋果問題:整數分拆遞推關係與遞歸/DP 實現
問題描述 將 M 個相同的蘋果放入 N 個相同的盤子中,允許空盤,問有多少種不同的放法?(盤子相同意謂著排列不計順序,即整數分拆問題) 例:M=7, N=3 →
數組分割問題深度解析:從子集和到動態規劃的兩種變體
問題描述 給定 2n 個正整數,分割為兩個子集: 無大小限制:任意分割,使兩子集和最接近 固定大小 n:每個子集恰好 n 個元素,使和最接近 核心等
最長遞增子序列 (LIS) 完全指南:O(n²) DP 到 O(n log n) 優化全解析
問題定義 給定長度為 n 的數組 A[1..n],求最長嚴格遞增子序列的長度。子序列不要求連續,但順序必須保持。 例:A = [2, 5, 3, 7, 11,
UVa 10004 Bicoloring 圖的二色性判定:BFS 與 DFS 完整解析
問題描述 給定一個無向連通圖,判斷是否能用兩種顏色為所有頂點著色,使得任意相鄰頂點顏色不同。這是經典的圖二分性檢測問題,等價於判斷圖中是否存在奇數環。 核心思
設計模式精解:裝飾模式 深度解析與 C++ 實戰應用
前言:為何需要裝飾模式? 在軟體開發中,我們經常面臨這樣的需求:在不修改現有類別代碼的前提下,動態地為物件增加新的功能。繼承雖然可以實現擴展,但會導致類別爆炸,
設計模式精講(三):策略模式——重構影片租賃計價系統,消除 Switch 案例
模式動機 當一個類包含多種演算法變體(如計價規則),且使用 switch/case 或 if/else 選擇時,違反開閉原則:新增規則需修改核心類。策略模式將每
設計模式精講(二):單例模式——靜態成員陷阱與資料庫連線實戰
單例模式核心 確保類在全局僅有一個實例,並提供全局訪問點。典型實現: class Singleton { static Singleton* inst
設計模式精講(一):模板方法模式——以 Qt 輸入法組件為例
模式定義 模板方法模式:在抽象類中定義算法骨架,將某些步驟延遲到子類實現。子類可在不改變算法結構情況下,重新定義算法的特定步驟。 UML 結構 Abstra
POJ 3321:樹上查詢——DFS 序 + 樹狀數組維護子樹蘋果數
問題描述 給定一棵有根樹(根為 1),每個節點初始有 1 個蘋果。支持兩種操作: • C u:翻轉節點 u 的蘋果狀態(有→無,無→有)。 • Q u:查詢以
POJ 1637 混合圖歐拉回路判定:網絡流建模完整指南
背景知識:歐拉回路條件 圖類型歐拉回路條件歐拉通路條件 無向圖連通 + 所有頂點度數為偶連通 + 僅兩奇度頂點 有向圖連通 + 每頂點入度 = 出度連通 +
POJ 3636 Nested Dolls:巢狀娃娃與最長非嚴格下降子序列
題目模型 每個娃娃有寬 w 和高 h。娃娃 A 可套入 B 需 w_A < w_B 且 h_A < h_B(嚴格)。求將所有娃娃分成最少條「套娃序列」(每條序列
POJ 1065 Wooden Sticks:雙關鍵字排序 + 最長下降子序列
題目大意 有 n 根木棍,每根有長度 l 和重量 w。需分成若干堆,每堆內木棍的長度和重量均非嚴格遞增(即可相等)。求最少堆數。 等價於:將木棍按 l 升序、l
POJ 1548 Robots:最長下降子序列 O(n log n) 解法
題目轉化 給定平面上若干點 (x, y),求最長序列使 x 嚴格遞增且 y 嚴格遞減。輸入以 0 0 分隔測試組,-1 -1 結束。 排序後問題等價於:對 x