HDU 3487 Play with Chain:Splay 树區間剪切、翻轉與插入綜合實戰
問題描述 初始鏈為 1, 2, ..., n(n ≤ 300,000),支持 m 次操作(m ≤ 300,000): CUT a b c:剪切區間 [
LeetCode 128 Longest Consecutive Sequence:O(n) 哈希表 + 懶標記去重
題目描述 給定未排序整數數組,找出最長連續數字序列的長度(連續指數值連續,不要求數組中連續)。要求 O(n) 時間複雜度。 示例:[100, 4, 200, 1
POJ 2892 Tunnel Warfare:平衡樹維護動態連通區間查詢
問題描述 n 個村莊(n ≤ 50,000)排成一線,相鄰村莊有隧道相連。m 個事件(m ≤ 50,000): D x:第 x 個村莊被摧毀(隧道斷開
C/C++ 進階容器與算法實戰:multimap、multiset、bitset、string 及 Lambda 表達式全解析
關聯容器:multiset 與 multimap multiset — 允許重複元素的有序集合 #include #include using namesp
BZOJ 1208 [HNOI2004] 寵物收養所:Splay 树動態維護最小絕對差值
問題建模 收養所同時只存在「待領養寵物」或「等待領養者」,不會共存。每次操作: 寵物到達(a=0, 值=b):若有等待者,匹配特點值最接近的領養者(差
C++ 實現類 Java synchronized 的對象級鎖:AALock 設計與實踐
背景痛點 在多線程環境下,共享數據(如 std::vector、普通數組)的並發訪問需要加鎖保護。傳統做法需為每個共享對象顯式創建 pthread_mutex_
BZOJ 1269 [AHOI2006] 文本編輯器:Splay 树維護字符序列完整解析
問題描述 實現一個支持 7 種操作的文本編輯器: Move k:光標移至第 k 個字符前(0 ≤ k ≤ 當前長度) Insert n:在光標
PAT 1035 Password 解題詳解:密碼混淆字符替換與賬戶修改統計
題目背景 PAT(Advanced Level)1035 題要求處理用戶賬戶密碼中的視覺混淆字符:將 1 替換為 @,0 替換為 %,l(小寫 L)替換為 L,
C++ 實現斐波那契數列:遞歸與迭代的高效解法
斐波那契數列簡介 斐波那契數列是一個經典的數學序列,其定義為:前兩項為 1,從第三項開始每一項都等於前兩項之和。即 F(0)=1, F(1)=1, F(n)=F
LeetCode 筆記:Word Ladder(單詞接龍)BFS 最短路徑詳解
題目大意 給定起始單詞、目標單詞和字典,每次只能改變一個字母,且中間單詞必須在字典中。求從 start 到 end 的最短轉換序列長度。例如 hit → hot
BZOJ 1305 [CQOI2009] 跳舞:最大流與二分答案解法
問題背景 有 n 個男孩和 n 個女孩,每首舞曲需配成 n 對。每個男孩不與同一女孩跳兩次。部分男女互相喜歡,其餘互不喜歡。每人最多接受 k 個不喜歡的異性舞伴
AOJ 0118 財產分配:廣度優先搜索解法詳解
問題描述 本題要求在一個由字符組成的網格中,計算連通區域的數量。網格包含多種字符(如 #、*、@),相同字符且上下左右相鄰的格子視為同一區域。輸入以兩個 0 結
LeetCode Word Search II:Trie 字典樹 + DFS 剪枝優化
題目 給定 m×n 字母板、字典 words,找出所有能在板上由相鄰格子(上下左右)順序組成的單詞。同一格子單詞中不可重複使用。返回列表(順序不限)。 解法:
POJ 1149 PIGS:最大流建模豬圈銷售優化
題目 M 個豬圈(初始豬數),N 個顧客(持鑰匙集合、想買數量)。顧客按序到達,打開持鑰豬圈,賣豬後可在解鎖豬圈間重新分配。求最大銷售量。 M ≤ 1000,
POJ 3009 Curling 2.0:DFS 限步搜尋冰壺最少投擲次數
題目 W×H (≤20) 冰面,2 起點,3 終點,1 障礙塊,0 空地。石塊投擲後沿直線滑動直到: 撞到障礙 → 停在障礙前一格,障礙消失。 滑出邊界 →
POJ 1979 Red and Black:DFS 洪水填充計算可達黑瓦片數
題目 W×H (≤20) 網格,@ 起點,. 黑瓦可走,# 紅瓦阻隔。四方向移動,求可達黑瓦總數(含起點)。多測試用例,0 0 結束。 解法:遞歸 DFS