C++ 虛析構函數與純虛析構函數深度解析
為什麼析構函數要聲明為 virtual? 當通過基類指針刪除派生類對象時,若基類析構函數非虛函數,則只會調用基類析構函數,導致派生類資源洩漏。聲明為 virtu
C 語言函數指針完全指南:定義、調用與回調實戰
什麼是函數指針? 函數指針是指向函數代碼入口地址的指針變量。它允許在運行時動態決定調用哪個函數,是實現回調、狀態機、插件架構的核心機制。 1. 函數指針的定義
Codeforces 549H: 退化矩陣 - 二分查找求最小範數
問題描述 給定一個 2×2 矩陣 A,其元素為整數 a, b, c, d(絕對值 ≤ 10⁹)。矩陣的行列式定義為 ad - bc。若行列式為零,則稱該矩陣為退
Codeforces Round #306 Div.2 題解 (A/B/C/E)
A. Two Substrings 判斷字符串是否包含不重疊的 AB 和 BA。暴力掃描四次:先找 AB 再找 BA,先找 BA 再找 AB,找到即標記為 *
LightOJ 期望迷宮:數學期望公式推導
問題描述 迷宮有 n 扇門。門 i 值 x_i:0 表示 x_i 分鐘後出去;<0 表示 |x_i| 分鐘後回到起點。每次隨機選門。求走出迷宮的期望時間。 期
LeetCode Single Number:異或運算找唯一單一數字
問題描述 數組中除一個數出現一次外,其餘均出現兩次。找出該單一數字。要求線性時間、常數空間。 異或性質 x ^ x = 0 x ^ 0 = x 滿足交換律、
NOJ 1119 仙林鼎山游樂園:Floyd 判環
問題描述 給定有向圖 n≤50,判斷是否存在環。多測試用例。 Floyd 传遞閉包判環 用 reach[i][j] 表示是否存在路徑 i→j。Floyd 算法
NOJ 1113 斐波那契數應用:公里轉英里模擬
問題描述 斐波那契數列 F1=1, F2=2, Fn=Fn-1+Fn-2。任意正整數 x 可唯一表示為不相鄰斐波那契數之和(Zeckendorf 表示)。轉換規
HDU 3364 Lanterns:高斯消元解開關燈泡方案數
問題描述 m 個開關控制 n 個燈泡,開關可翻轉對應燈泡狀態。給定燈泡目標狀態,求開關組合數。模 2 線性方程組:A * x = b (mod 2)。解的個數
HDU 1584 蜘蛛牌:區間 DP 最小移動步數
問題描述 10 張牌排成一行,每張有編號。操作:將一張牌移到另一張牌上(疊加),代價 = 兩牌位置距離。求將所有牌疊成一疊的最小總代價。 區間 DP 狀態定義
HDU 1532 Drainage Ditches:最大流模板題 (ISAP/Dinic/EK)
問題描述 有向圖 N 條溝渠,M 個交匯點。1 為池塘,M 為溪流。每條溝渠單向,容量 C_i。求最大流量。N≤200, M≤200。 三種最大流實現對比
HOJ 2430 Counting the algorithms:樹狀數組維護動態排名
問題描述 長度 2N 序列,每個數 1..N 恰好出現兩次。每次操作選一個數,刪除其兩次出現,得分 = 兩位置差。刪除後前面空位自動前移。求最大總分。N ≤ 1
HDU 1408 鹽水的故事:浮點數模擬每日蒸發
問題描述 初始鹽水體積 V,每日蒸發 D。第 i 天進行 i 次蒸發(每次蒸發 D),直到體積 ≤ 0。求總共經過多少次蒸發。V, D 為浮點數。 直接模擬
NOJ 1167 丑陋數:三指針動態生成第 1500 個 Hamming 數
問題描述 丑陋數定義:質因子只包含 2,3,5。求前 1500 個丑陋數(第一個為 1)。多查詢輸出第 n 個。 三指針 O(n) 生成法 維護 ugly[i
C++ 編譯器對類成員變量與函數的處理機制
核心結論 成員變量與成員函數分開存儲: 普通成員變量 → 對象內存中(同 struct 佈局)。 靜態成員變量 → 全局數據區。 成員函數(含虛函數表指針)
HDU 3572 Task Schedule:最大流 ISAP 解任務調度
問題描述 M 台機器,N 個任務。任務 i 需在 [S_i, E_i] 內處理 P_i 天,可中斷、可換機器。每天每台機器只能做一任務,每任務每天只能佔一機器。
Teams (UVA 11609):組合計數與快速冪
問題描述 有 n 人,選若干人組隊,且指定一名隊長(隊長不同視為不同方案)。求方案數模 1e9+7。 組合推導 選隊長 n 種,其餘 n-1 人每人選或不選(