C++ 基礎易錯點深度解析:從浮點陷阱到輸入輸出細節
前言 作為 Java 開發者轉戰 C++,近期整理了實戰中踩過的坑,涵蓋浮點數行為、格式化輸出、輸入讀取、字符串操作、類型轉換等核心知識點,供初學者避坑參考。
POJ 1375 Intervals:解析幾何求圓外切線投影區間
問題背景 給定一個光源點與若干圓形障礙物,求光源在 Y 軸上的投影區間。每個圓會產生兩條切線,切線與 Y 軸的交點決定該圓的投影區段;多個區段可能重疊,最終需輸
LeetCode 經典入門:Two Sum 題目詳解與哈希優化實戰
題目描述 給定一個整數數組 numbers 和一個目標值 target,請在數組中找到兩個數字,使它們的和等於 target。函數 twoSum 需返回這兩個數
C++ TEA 加密算法實現:高性能文件加密/解密工具(單例模式管理密鑰)
TEA (Tiny Encryption Algorithm) 核心 64 位分組,128 位密鑰(4×32 位)。 建議 32 輪(最少 6 輪),每輪極簡
S3C2440 UDA1341 聲卡驅動移植與 Madplay 播放器交叉編譯全記錄
一、內核聲卡驅動配置 (Linux 3.0) 修改 `arch/arm/mach-s3c2440/mach-mini2440.c`(或對應板級文件):
HDU 1257 最少攔截系統:貪心 + 多維 LIS 變體(堆疊模型)
問題等價 導彈高度序列,每套系統只能攔截**非遞增**高度序列。求覆蓋整個序列所需的**最少非遞增子序列數**。 由 Dilworth 定理:最少非遞增子序列數
UVA 11181 Probability|Given:條件概率 DP(貝葉斯公式 + 遞歸)
問題建模 N 個人獨立購物,第 i 人購買概率 pi。已知**恰好** r 人購買,求第 i 人購買的條件概率 P(i買 | 總共r人買)。 貝葉斯公式 P(
Codeforces 356B Xenia and Hamming:LCM 週期 + 同餘分組計數
問題重述 兩字符串 a、b,長度分別 la, lb。構造長度為 L = lcm(la,lb) 的超級串:a 重複 L/la 次,b 重複 L/lb 次。求兩超級
C++ 不優雅特性深度剖析:編譯緩慢、封裝缺陷、無反射、跨平台難
1. 編譯緩慢的根源 模板機制:聲明與實現必須同在頭文件,導致大量代碼重複實例化、編譯。修改頭文件觸發所有依賴單元重編譯。 頭文件包含模型:遞歸包含導致同一代
HDU 4035 Maze:樹上概率 DP 求期望通過隧道數(高斯消元 / 遞推)
問題建模 樹形迷宮 N 個房間,每房間有殺死概率 Ki%(重置回 1 號房)和出口概率 Ei%(逃脫)。從 1 號房開始,每步等概率選擇相鄰隧道。求期望通過隧道
C++ 初始化全景:形式、規則、構造函數初始化列表、成員初始化順序
兩種初始化形式 **複製初始化**:`Type obj = value;` 可能產生臨時對象再拷貝(C++17 強制消除)。 **直接初始化**:`Type
POJ 1845 Sumdiv:A^B 約數和模 9901(遞歸等比數列求和 + 逆元避坑)
核心公式 A = ∏ piai → AB = ∏ piaiB。 約數和 σ = ∏ (pe+1−1) / (p−1)。 除法陷阱與解決 模 9901 非質數(
并查集判斷樹結構:POJ 1308 / HDU 1272 完整解法
樹的充要條件 **無環**:任意兩節點最多有一條路徑。 **連通**:只有一個連通分量(根節點唯一)。 **邊數 = 節點數 − 1**(隱含前兩條)。 并
C++ 可變參模板實現類 printf 格式化輸出(類型安全)
設計目標 模仿 C 的 `printf`,但利用 C++ 可變參模板實現**編譯期類型檢查**,避免運行期格式字符串與參數不匹配導致崩潰。 核心實現 #inc
POJ 3744 Scout YYF I:概率 DP + 矩陣快速冪(斐波那契型遞推)
問題轉化 YYF 沿數軸移動,某些位置有「陷阱」。從 0 出發,每步 +1 或 +2(概率 p, 1-p)。求到達終點不踩陷阱的概率。 等價於:在無陷阱區間長度
POJ 1962 Corporative Network:帶權并查集維護到根距離
問題建模 N 個企業,初始各自為中心(根)。 操作 `I I J`:將中心 I 連接到企業 J,邊長 = |I−J| mod 1000。新叢集中心為 J 所在
LeetCode 55 Jump Game:動態規劃與貪心兩種 O(N) 解法
問題描述 非負整數數組 `nums`,初始位於索引 0。每個元素代表該位置**最大**跳躍長度。判斷能否到達最後一個下標。 方法一:動態規劃(維護最遠可達)
SDUT 1447:y² = x² + n 求最小正整數 x(因子分解 + 奇偶性)
方程變形 y² − x² = n → (y−x)(y+x) = n。 設 u = y−x,v = y+x,則 u·v = n,且 u, v 同奇偶(因 y =