Trie 字典樹完整指南:原理、模板與經典題目實戰
Trie 樹 (字典樹) 核心概念 定義:多叉樹結構,利用字串公共前綴壓縮存儲空間 性質:根不含字符;每條邊代表一字符;節點到根路徑拼成字串;同層子節點字符互
STL 容器深度解析:雙端佇列 deque 與鏈表 list
deque (雙端佇列) 完整指南 核心特性 隨機存取:支援 operator[]、at() O(1) 存取 雙端高效操作:push_front/pop_f
線段樹區間更新:延遲標記實現 Pudge 鉤子顏色變更問題
問題描述 鉤子由 N 根連續金屬棍組成,初始皆為銅 (值 1)。Q 次操作,每次將區間 [X, Y] 變更為銅(1)、銀(2)或金(3)。求所有操作後鉤子總價值
C++ 文件讀寫實戰:學生信息管理系統的二進制序列化
核心概念:物件二進制序列化 利用 fstream 的 read() / write() 直接將物件記憶體映像寫入/讀出檔案,實現高效持久化。 關鍵類別 if
Codeforces 427C Checkposts:強連通分量 Tarjan 算法求最小花費與方案數
問題描述 有向圖 n 點 m 邊,每點有建設成本。需選擇若干點建立「崗哨」,滿足:每個點要么自身有崗哨,要么能從某崗哨點出發到達並能返回(即強連通)。求最小總成
UVA 1372 Log Jumping:木板跳躍環判定的貪心策略
問題描述 給定 n 塊木板,每塊有起始位置和固定長度 k。木板之間若重疊則可互相跳躍。求能構成「跳躍環」的最大木板數量(即最大連通分量大小)。 核心觀察 木
POJ 2420 模擬退火法求費馬點:多邊形內距離和最小化
問題描述 給定 N (≤ 100) 個點的座標,在多邊形內尋找一點,使其到所有給定點的歐氏距離之和最小。這就是幾何學中的費馬點(或稱幾何中位數)問題。 為何選
Codeforces 244D Match & Catch:字串哈希與後綴數組雙解法
問題描述 給定兩個字串,找出最小長度 L,使得存在長度為 L 的子串在兩字串中各自恰好出現一次,且這兩個子串相同。若不存在輸出 -1。 解法一:字串哈希 (O
C/C++ 位域深度解析:語法細節與實戰應用
位域基本概念 位域允許在結構體中指定成員佔用的精確位數,是空間換時間的典型技術,廣泛應用於: 網絡協議封包定義(精確控制每個欄位位寬) 硬體暫存器映射 標誌位
UVA 10635 王子與公主:LCS 轉 LIS 的 O(n log n) 解法
問題分析 給定兩個序列 A (長度 p+1) 和 B (長度 q+1),元素互不相同且均為 1~n² 間整數,首元素皆為 1。求最長公共子序列 (LCS) 長度
HDU 4405 機率 DP 入門:飛行棋期望步數
問題描述 棋盤包含 0 到 N 標號的 N+1 格。從格 0 開始,每回合擲六面骰子(1-6 均勻分佈),前進 x 格。若 i+x ≥ N 則遊戲結束。另有 M
POJ 3257 過山車建設:動態規劃解法詳解
問題描述 需建設一條從位置 1 到 L 的過山車軌道,給出 n 段可選建設方案。每段包含起點、終點、成本與趣味值。要求相鄰軌道首尾相連覆蓋 1-L,總成本不超過
C++ Primer Plus 學習筆記:運算符重載深度解析
運算符重載核心概念 在 C++ 中,運算符重載讓我們能為自定義類型定義運算符行為,使類別操作更直觀自然。本文深入探討成員函數與友元函數重載的選擇策略、前綴/後綴
UVA Accordian Patience:紙牌疊放模擬(左優先、盡量左移三位)
模擬 Accordian 耐心紙牌遊戲:52 張牌發成一行,牌可疊到左邊相鄰牌或左邊第 3 張牌(同花色或同點數)。策略:優先移動最左可移動的牌;能移 3 位則
NYOJ 628 小媛在努力:連續相同數字壓縮(Run-Length Encoding)
輸入數字序列,將連續相同數字壓縮為「個數 值」對輸出。如 1 1 1 2 3 3 3 3 3 → 3 1 1 2 5 3。 流式處理(O(1) 空間) 讀首
UVA 11525 Permutation:線段樹求第 k 大排列(康托展開逆運算)
給定 1~k 的排列按字典序編號,編號計算公式:n = s1*(k-1)! + s2*(k-2)! + ... + sk*0!。給出 s1..sk,求對應排列。
HDU 3033 I love sneakers!:01 背包 + 反分組背包(每組至少選一件)
n 雙鞋分 k 類,容量 m。每雙鞋有體積 p、價值 v(01 背包)。要求每類至少買一雙,求最大價值,不可則輸出 Impossible。 DP 狀態與轉移
C++ Primer Plus 筆記:繼承類構造與析構函數調用順序
創建派生類對象時,構造函數調用順序: 基類構造函數(按繼承聲明順序,虛基類最先) 成員對象構造函數(按類中聲明順序) 派生類構造函數 析構函數調用順序恰好相