C++ 內存區域劃分:棧、堆、全局/靜態、常量、代碼區實例圖解
五大內存區域 區域分配方式典型內容生命週期 棧編譯器自動函數參數、局部變量、返回地址函數調用期間 堆程序員 new/malloc動態對象手動釋放或進程結束 全
BZOJ 4818 序列計數:DP+矩陣快速冪+數論優化全解析
問題描述 長度 n 的序列,每項取值 [1, m],求和為 p 的倍數且至少包含一個質數的方案數模 20170408。n, m, p ≤ 100?實際 m ≤
POJ 3468 區間加/區間和:線段樹懶標記模板詳解
問題大意 N 個整數(N, Q ≤ 100,000),兩類操作: C a b c:區間 [a, b] 每個數加 c(|c| ≤ 10,000)。 Q a b:查
NOI 1997 最優乘車:Floyd 多源最短路徑求最少換乘次數
問題建模 M 條單向巴士線路,每條線路按順序經過若干站。乘客從站 1 到站 N,可在同站換乘。求最少換乘次數(即最少乘坐線路段數 - 1)。 圖構建技巧 同一
Tarjan 算法深度解析:強連通分量遞歸實現與圖解演示
核心概念 強連通:有向圖中 u→v 且 v→u 可達。 強連通分量 (SCC):極大強連通子圖。 Tarjan 算法:基於 DFS,單次遍歷 O(V+E) 求
C++ 運算符重載:前置/後置 ++ -- 的正確實現模式與效率差異
語法區分:偽參數 前置 operator++() 無參數;後置 operator++(int) 接受一個 int 偽參數(僅供編譯器區分,無實際用途)。 語義
Java 內存洩漏:理論無洩漏但實際存在的幾類場景
理論基礎 Java 擁有垃圾回收器(GC),理論上開發者無需手動管理內存,「不會有內存洩漏」。但 GC 只能回收不可達對象。若對象無用但仍可達,GC 不會回收,
光盤刻錄最小數:Floyd 傳遞閉包 + Kosaraju 強連通分量縮點
問題建模 N 名營員(N ≤ 200),有向邊表示「願意拷貝給」。傳遞閉包後,若 A 能達到 B 且 B 能達到 A,則屬同一強連通分量(SCC),只需 1 張
城市公交網建設:Prim 算法求最小生成樹並輸出邊集
問題描述 給定 n 個城市(n ≤ 100)、e 條可建高速公路及造價。圖連通。求最小總造價連通所有城市,輸出 n-1 條邊的端點。 Prim 算法適用性 稠
Windows 字符編碼詳解:TCHAR、LPSTR、LPWSTR 等類型含義與轉換陷阱
ANSI vs Unicode 基礎 ANSI (MBCS):單字節字符,char,API 後綴 A(如 SetWindowTextA)。 Unicode:雙
Effective C++ 條款 47:Traits 技術實現編譯期類型信息獲取
背景:STL advance 的困境 advance(iter, d) 需將迭代器移動 d 步。隨機訪問迭代器支援 iter += d(O(1)),其他只能逐步
暢通工程:並查集統計連通分量求最少新建道路數
問題大意 多組測試數據。每組給 N 個城鎮(N < 1000)、M 條現有道路(可能重邊、自環)。求最少再建多少條路使全圖連通。輸入 N=0 結束。 解法:連
家譜最早祖先查詢:並查集思想+Map 實現
問題描述 輸入多組父子關係:#Father 表示父親,+Son 表示其子女(可多個),?Name 詢問該人的最早祖先,$ 結束。名字固定 6 字符,大寫開頭。最
親戚關係查詢:並查集離線處理 C++ 模板題
問題大意 n 人(n ≤ 5000),m 對親戚關係,p 次詢問。關係具有傳遞性(等價關係)。判斷每對詢問是否屬於同一家族。經典並查集應用。 並查集核心操作
家譜樹拓撲排序:Kahn 算法 C++ 實現詳解
問題描述 給定 N 個人(N ≤ 100)及其子女關係,輸出一個序列使每個人的後輩都排在其之後。即有向無環圖的拓撲排序。輸入第 i 行列出 i 的兒子,以 0
BZOJ 4819 新生舞會:分數規劃+最大費用最大流求最優匹配
問題轉化 n 對舞伴,每對有價值 a[i][j] 和成本 b[i][j]。選擇完美匹配,最大化 Σa / Σb。經典分數規劃(0-1 分數規劃)問題:二分答案