Ural 1073 Square Country:完全背包求最少平方數之和
Ural 1073「Square Country」:給定 N (≤ 60000),求表示為最少幾個完全平方數之和(如 344 = 18² + 6² + 2²,答
HDU 2080 夾角有多大 II:向量夾角餘弦公式求解
HDU 2080 給定兩點 (x1,y1)、(x2,y2),求它們與原點連線的夾角(0°~180°)。本文推導餘弦公式解法,分析數值穩定性,給出精確到小數點後兩
Codeforces 387E:集合區間最小值查詢與有序集合優化
Codeforces 387E 要求從數列中刪除指定元素,每次刪除代價為當前區間長度,求最小總代價。本文解析「逆向思維 + 有序集合維護區間」的核心解法:按值從
HPUOJ 1295 核反應堆:矩陣快速冪與遞推關係求解
HPUOJ 1295「核反應堆」描述質點碰撞繁殖過程:高能質點產生 3 高能 + 1 低能,低能質點產生 2 高能 + 1 低能。初始 1 高能,每微秒所有質點
BZOJ 1026 風數:數位 DP 計數相鄰差 ≥ 2 的數
題目大意 定義 windy 數:無前導零,且相鄰兩位數字差的絕對值 ≥ 2 的正整數。給定區間 [A, B] (1 ≤ A ≤ B ≤ 2e9),求區間內 wi
HDU 2191 珍惜現在,感恩生活:多重背包問題
題目背景 紀念汶川大地震。有 n 元資金,m 種大米,每種有價格 p、重量 h、袋數 c。只能整袋購買,求最大購買重量。資金可不花完。多組測試資料。 模型轉化
BZOJ 3856 Monster (不公平博弈):三條件判定必勝邏輯
題目重述 同 BZOJ 3856 Monster,敘述為「不公平博弈」。貓咪初始血量 h,先手每回合砍 a 點傷害,貓咪回手回 b 點血,先手連續 k 回合攻擊
BZOJ 2134 單選錯位:期望 DP 簡單應用
題目大意 有 n 道單選題,正確答案為 a[1..n]。但考生將第 i 題的答案填在了第 i%n + 1 題位置 (循環右移一位)。每題選項數為 a[i],隨機
BZOJ 1093 ZJOI2007 最大半連通子圖:Tarjan 縮點 + 拓撲 DP
題目轉化 半連通子圖定義:誘導子圖中任意兩點 u, v,至少有一條方向路徑連通 (u→v 或 v→u)。等價於:縮點後的 DAG 中,節點構成一條**鏈** (
BZOJ 2555 SubString:後綴自動機 (SAM) 線上查詢出現次數
題目大意 維護一個動態字串,支援兩種操作: 1. Append:在字串尾端新增一子串。 2. Query:詢問一模式串在當前字串中出現次數。 採用線上編碼:每次
C++ dynamic_cast 深度解析:原理、用法與安全性對比
四種類型轉換運算子 運算子用途執行期檢查 static_cast編譯期已知的相關類型轉換 (如基礎型別、類別層級向上/向下)無 dynamic_cast多態類
BZOJ 3856 Monster:C++ 入門級模擬題解析
題目大意 怪物初始血量 h,玩家攻擊力 a,怪物每回合回血 b,玩家連續攻擊 k 回合後需休息 1 回合。判斷玩家能否擊殺怪物。 核心邏輯:三種必勝情況 一
LeetCode Binary Tree Postorder Traversal:遞歸與迭代解法
題目描述 給定一棵二元樹,回傳其節點值的後序遍歷序列。後序順序:左子樹 → 右子樹 → 根節點。 範例:輸入 {1,#,2,3} (1 為根,右子為 2,2 的
BZOJ 3879 SvT:後綴樹 + 虛樹求 LCP 之和
題目大意 給定一字串,多組查詢,每組給出若干後綴索引,求這些後綴兩兩之間的最長公共前綴 (LCP) 長度之和。資料保證總查詢後綴數 Σ|ask| = O(n)。
NSMutableArray 可變陣列完全指南:建立、增刪改查與遍歷
NSMutableArray 核心特性 NSMutableArray 繼承自 NSArray,提供動態增減元素能力,是 Objective-C 中最常用的集合類
C++ Primer 第五版第十章:泛型算法精要筆記
核心觀念:算法與容器解耦 泛型算法運作於迭代器之上,而非直接操作容器。這帶來關鍵特性:算法永遠不會改變底層容器大小(不增刪元素),只會修改元素值或移動元素位置。
C++ const 物件與 const 成員函數深度解析
核心概念 在 C++ 中,const 關鍵字用於表達「不可修改」的語意,正確使用能提升程式碼安全性與可讀性。本文釐清 const 物件、const 成員函數、m