C++ 虛析構函數深度解析:為什麼基類析構函數必須聲明為 virtual?
問題背景 當使用 new 創建派生類對象,並用基類指針指向它時,若基類析構函數不是虛函數,調用 delete basePtr 只會執行基類的析構函數,導致派生類
HDU 2892 Area:多邊形與圓相交面積計算幾何題解
題目大意 給定一個多邊形(島嶼)和一個圓(炸彈爆炸範圍),求兩者相交的面積。多邊形頂點數 n ≤ 100,000,圓心座標與半徑由物理公式計算得出。 解題思路
程式設計師面試必備:雙向鏈表完整實現與核心操作詳解
雙向鏈表:結構特點與基本操作 雙向鏈表是鏈表的一種重要變體,每個節點除了包含數據域與指向後繼節點的 next 指針外,還增加了一個指向前驅節點的 pre(或 p
C++ operator 運算符的兩大用法:運算符重載與隱式類型轉換,以及 string_cast 實現字串到基本類型的轉換
C++ operator 運算符的兩大核心用法 在 C++ 中,operator 關鍵字主要有兩個用途:一是運算符重載,二是自定義類型的隱式轉換。運算符重載對大
二叉樹算法完整實現:創建、遍歷、深度、路徑、層序、樹形輸出 C 語言版
數據結構定義 typedef struct BTNode{ char data; struct BTNode *left, *right; }
C++ 單例模式與線程安全:雙重檢查鎖、靜態初始化、RAII 清理完整指南
單例模式基礎 單例確保類只有一個實例,並提供全局訪問點。核心要素:私有構造函數、靜態實例指針、公共靜態獲取方法。 線程不安全的懶漢式 class Single
HDU 3923 Invoker:Polya 計數定理求項鏈染色方案數模 1e9+7
問題描述 有 n 種顏色,m 個珠子排成環(可旋轉、翻轉)。兩種染色若通過旋轉或翻轉重合視為同一種。求本質不同染色方案數模 1,000,000,007。T≤50
POJ 3126 Prime Path:四位質數圖 BFS 最短轉換路徑
問題描述 給兩個四位質數 start, target。每步修改一位數字(千位不能改為 0),得到的新數必須也是質數。求最少步數轉換,不可達輸出 Impossib
HDU 3172 Virtual Friends:帶權並查集(按秩合併)動態維護集合大小
問題描述 多測試用例。每案給 n 對好友關係 (name1, name2),每次加入關係後輸出所在朋友圈總人數。名字長度 ≤ 20,總人數 ≤ 100,000。
HDU 1518 Square:DFS + 剪枝判斷能否拼成正方形
問題描述 給 M (4≤M≤20) 根木棍,長度 1..10000。判斷能否用所有木棍拼成一個正方形(每根用且只用一次,不可折斷)。多測試用例。 算法:DFS
HDU 2669 Romantic:擴展歐幾裡得算法求解線性同餘方程
問題描述 給非負整數 a, b,求非負整數 X 和整數 Y 滿足 aX + bY = 1。若無解輸出 sorry。多組輸入。若多解,取最小 X。 數學原理:擴
HDU 4876 ZCC loves cards:暴力枚舉 + 剪枝求 XOR 區間覆蓋
問題描述 有 n≤20 張卡牌,每張有數值 a[i]≤100。選 k≤6 張排成環,任選連續 m (1≤m≤k) 張計算 XOR 和。給定 L,求最大 R 使得
HDU 1248 寒冰王座:完全背包求最大可達和
問題描述 有 4 種物品,價值/重量分別為 150, 200, 350(題目隱含第 0 種?代碼中 w[0]=150, w[2]=200, w[3]=350,共
POJ 2411 Mondriaan's Dream:狀態壓縮 DP 計算多米諾骨牌鋪放方案數
問題描述 用 1×2 的多米諾骨牌鋪滿 h×w 矩形(h,w ≤ 11),骨牌可橫放或豎放,求鋪法總數。多測試用例,以 0 0 結束。 狀態壓縮 DP 核心思
C++11 Lambda 表達式性能對比:Lambda vs std::bind vs 函數對象
背景 C++11 引入 Lambda 表達式,本質是編譯器自動生成的函數對象(仿函數)。直觀上 Lambda 應與手寫函數對象效能相同。但 std::bind
Codeforces 451E (258E):Lucas 定理 + 容斥原理 計算組合數模大質數
問題描述 給定 n 個變量 x_i,每個有上界 f_i(即 0 ≤ x_i ≤ f_i),求 Σ x_i = s 的非負整數解個數模 10^9+7。n ≤ 20
HDU 1171 Big Event in HDU:多重背包/母函數分割物品求最接近半和
問題描述 有 n 種物品,每種有價值 val[i] 和數量 num[i]。將所有物品分成兩堆 A、B,使 A ≥ B 且 A 盡可能小(即 B 盡可能大但不超過
HDU 1253 勝利大逃亡:三維 BFS 迷宮最短路徑
問題描述 城堡為 A×B×C 立方體(≤50),起點 (0,0,0),終點 (A-1,B-1,C-1)。地圖 0=路,1=牆。每分鐘移動到相鄰 6 面之一。魔王