HDU 2586 How Far Away:Tarjan 離線算法求 LCA 計算樹上兩點距離
題目大意 給定一棵 n (≤50000) 節點的樹(邊有權),m 個詢問 (u,v),求兩點間路徑長度(邊權和)。多測資。 Tarjan 離線 LCA 算法
LeetCode Merge Intervals:區間合併排序 + 貪心掃描線
題目大意 給定區間集合 intervals,合併所有重疊區間,返回不重疊區間列表。區間表示為 [start, end]。 算法:排序 + 單次掃描 按 st
C++ 類定義細節全解析:成員變量、構造函數、成員函數、const、inline、this 指針
1. 成員變量與訪問控制 public:所有代碼可訪問。 private:僅類內成員函數、友元可訪問(默認)。 protected:派生類成員函數也可訪問。
HDU 5340 Three Palindromes:Manacher 算法判斷能否分割為三個非空回文串
題目大意 給定字符串 s(長度 n),問能否將其分割為三個**非空**回文子串拼接(即存在 0 < i < j < n 使 s[0..i-1], s[i..j-
ZOJ 1395 Door Man:歐拉回路判斷門能否全開
題目大意 有 m 扇門(邊),n 個房間(點)。每條邊連接兩個房間。從任意房間出發,能否走遍所有門恰好一次並回到起點(歐拉回路)?輸出 YES 總門數 或 NO
HDU 4289 Control:最小割 / 最大流模型求最小攔截成本
題目大意 有向圖中間諜從起點 S 逃往終點 T。每個城市 i 有監視成本 c_i。可在城市設置監視點,間諜經過被監視城市即被捕獲。求最小總成本使間諜無法從 S
HDU 5333 Undirected Graph:LCT (Link-Cut Tree) + BIT 動態維護連通分量
題目大意 給定 n 點 m 邊無向圖(有自環、重邊),q 次查詢 [L,R]。每次查詢:刪除所有至少一個端點不在 [L,R] 區間內的邊,詢問剩餘圖的連通分量數
C++ 拷貝構造函數與六大特殊成員函數詳解
1. 拷貝構造函數調用時機 編譯器自動生成或用戶定義的拷貝構造函數 T(const T&) 在以下情況被調用: 值傳遞參數:void func(MyClass
VC++ 雙緩沖繪圖消除閃爍:原理與實現
問題:直接在 WM_PAINT 繪圖導致閃爍 在 OnPaint 中直接調用 dc.LineTo、dc.Rectangle 等 GDI 函數,畫面會先清除背景(
多維數組與指針深度解析:數組名、指針算術、解引用與函數傳參
核心概念:二維數組在內存中是連續的一維數組 int a[3][4] 在內存中佔用 12 個 int 連續空間,按行主序排列。數組名 a 是「指向第一行的指針」,
棋盤覆蓋問題:遞歸分治法用 L 型骨牌覆蓋特殊棋盤
題目大意 2^k × 2^k 棋盤有一特殊方格(缺損)。用 4 種旋轉的 L 型骨牌(覆蓋 3 格)覆蓋除特殊格外所有方格,骨牌不重疊。輸出骨牌編號佈局。 分
C++ 四種對象生存期方式:棧、堆、全局/靜態、局部靜態
概述 C++ 中對象的生存期與儲存區域決定了其構造/析構時機、作用域及內存管理方式。共有四種基本方式。 1. 自動儲存期(棧 Stack) void func
C++ const 關鍵字用法全解析:修飾變量、指針、函數參數、返回值與成員函數
1. const 修飾變量與指針 核心規則:const 最近修飾誰,誰就是常量。看 * 左右: const int* p / int const* p:p 指
UVA 1152 4 Values whose Sum is 0:四數組和為零計數
題目大意 給四個長度 n (≤4000) 的整數數組 A,B,C,D。求四元組 (a,b,c,d) 滿足 a+b+c+d=0 的個數。絕對值 ≤ 2^28。
UVa 714 Copying Books:二分答案 + 貪心分配最小化最大工作量
題目大意 m (≤500) 本書頁數 a_i,分配給 k (≤m) 個抄寫員。每人分配連續段落,人人並行工作,總耗時取決於工作量最大者。求最小可能的最大工作量,
UVA 球氣球分裂問題:遞歸計算第 K 小時前 B 行紅氣球數
題目大意 初始 (0,0) 處有一紅氣球。每小時:紅氣球分裂為 3 紅 1 藍(位於 2×2 子網格);藍氣球分裂為 4 藍。網格每小時尺寸翻倍。求第 K 小時
POJ 3660 Cow Contest:Floyd 传递闭包判斷排名確定性
題目大意 N (≤100) 隻牛,M 條已知比較結果 B(A 比 B 強)。若能通過傳遞性推導出牛 X 與其他所有牛的強弱關係,則 X 的排名確定。求排名確定