POJ 1948:二維背包求最大三角形面積完整解析
POJ 1948 給定 n (≤40) 根木棒,長度 ≤40,選擇若干根組成三角形,求最大面積。每根木棒只能用一次,不可切割。 核心觀察 三角形三邊 a,
HDU 2084 數塔:經典動態規劃入門與空間優化
HDU 2084 是數塔(三角形)最大路徑和問題:從頂點到底邊,每步只能走左下或右下,求路徑最大和。 問題建模 三角形第 i 行有 i 個數。設 dp[i][
HDU 1452 Happy 2004:數論與除數函數的模運算技巧
HDU 1452 要求計算 S(2004^n) mod 29,其中 S(k) 為 k 的所有正因子之和(除數函數 σ₁(k))。 數學基礎:除數函數性質 對於
POJ 2728 最優比例生成樹:0-1 分數規劃與二分/迭代法求解
POJ 2728 是「最優比例生成樹」經典問題:給定無向圖,每條邊有收益 b[i] 和成本 c[i],求生成樹使 Σb / Σc 最大(或最小)。 數學建模:
HDU 1159 Common Subsequence:最長公共子序列 (LCS) 經典動態規劃
HDU 1159 是最長公共子序列(Longest Common Subsequence,LCS)問題的標準模板題。給定兩個字串,求它們最長公共子序列的長度。子
C++ Primer 核心筆記:資料與類型系統深度解析
基於《C++ Primer 第 5 版》整理的核心知識點,涵蓋基本類型、變數初始化、複合類型、字面值常量、C++11 新特性等現代 C++ 類型系統精髓。 一
C++ RTTI 完整指南:動態類型識別的原理與實踐
RTTI(Run-Time Type Identification,執行期類型識別)是 C++ 提供的機制,允許程式在執行期查詢物件的實際類型。主要包含兩個運算
C++ 靜態綁定與動態綁定:多態實現的核心機制
C++ 物件導向程式設計中,函數調用的綁定時機決定了程式的行為模式。靜態綁定(早期綁定)在編譯期確定,動態綁定(晚期綁定)在執行期根據物件實際類型確定,是實現多
C++ 中 endl 與 \n 的本質區別與效能考量
在 C++ 輸出流操作中,std::endl 和 \n 都能實現換行,但它們的底層行為有本質區別,直接影響程式效能與輸出時機。 核心差異對比 特性std::
Windows 重疊 I/O (Overlapped I/O) 深度解析:從事件通知到完成端口
核心概念 Overlapped I/O:發起 I/O 請求後立即返回,由系統內部線程異步執行,完成後通知應用。實現「I/O 與計算並行」,提高「受 I/O 限制
IOCP 模型總結:Windows 高性能異步 I/O 完成端口詳解
IOCP 核心原理 IOCP(I/O Completion Port,I/O 完成端口)是 Windows 提供的高性能異步 I/O 模型。核心思想: 預創建
深入探索 C++ 對象模型(一):對象內存佈局、繼承與多態實現
前言 本文基於《深度理解 C++ 對象模型》,探討對象在內存中的佈局、單繼承/多重繼承下的佈局差異、虛函數表機制、以及多態的底層實現。配合思維導圖與內存圖解,建
C++ 底層性能優化(二):數據佈局、代碼緩存與位域陷阱
前言 性能優化無銀彈。優先考慮算法優化,再考慮底層技巧。所有技巧需以 Profile 數據為依據。本文探討數據佈局、代碼緩存、位域等編碼層面優化。 1. 數據
C++ 表達式與語句深度解析:從求值順序到類型轉換
一、表達式核心概念 1. 函數調用作為運算符 函數調用 () 是一種特殊運算符,運算對象無數量限制(參數列表)。 2. 左值與右值 左值:表示對象的身份(
POJ 2762:Tarjan 縮點 + 判斷縮點圖是否為單鏈
問題描述 給定有向圖,判斷是否存在一條路徑經過所有強連通分量(SCC)恰好一次(即縮點後的 DAG 是否為一條單鏈:所有節點入度 ≤ 1、出度 ≤ 1,且從唯一
HDU 3328 Flipper:並查集與線段樹的替代視角(暴力模擬更優)
問題重述 同 HDU 3328(Flipper):n 張牌初始排列,經過 n-1 次 L/R 翻轉操作,查詢最終疊牌中指定位置的牌號與正反面。 替代思路:並查