資料結構與演算法系列(1):C++ 單向鏈結串列類別完整實作
C++ 單向鏈結串列類別封裝實作教學 本文示範如何使用 C++ 類別完整封裝單向鏈結串列,包含建立、插入、刪除、搜尋、反轉、排序、合併、環檢測等核心操作,適合資
HDU 1879 繼續暢通工程:Kruskal 重構最小生成樹
HDU 1879 繼續暢通工程:Kruskal 重構最小生成樹 給定 N<100 個村莊,N(N-1)/2 條潛在道路,每條有成本與是否已建(1/0)。求使全圖
C++ 模擬 HTTP/HTTPS POST 登錄:Socket 與 OpenSSL 實戰
C++ 模擬 HTTP/HTTPS POST 登錄:Socket 與 OpenSSL 實戰 通過原始 Socket 發送 HTTP 請求,或結合 OpenSSL
HDU 3311 Dig The Wells:斯坦納樹 SPFA + 狀態壓縮 DP 模板
HDU 3311 Dig The Wells:斯坦納樹 SPFA + 狀態壓縮 DP 模板 n ≤ 5 個寺廟(必須連通),m ≤ 1000 個可選井位,p ≤
Bellman-Ford 算法詳解:負權邊最短路與負環檢測
算法簡介 Bellman-Ford 是單源最短路算法,支持負權邊,並能檢測負權環。時間複雜度 O(VE),比 Dijkstra 慢但適用範圍更廣。 核心原理:
設計模式:觀察者模式完整解析(C# 實現)
模式定義 觀察者模式定義對象間一對多依賴,當主題狀態改變時,自動通知所有觀察者更新。別稱:發布/訂閱模式。 解決問題 降低主題與觀察者耦合。主題不知觀察者具體
C++ 函數調用機制深度解析:傳值、引用、指針、多態
函數參數傳遞方式 1. 傳值 void func(int x) { x = 10; } int a = 5; func(a); // a 仍為 5 複製實參,
SGU 133 Border:區間包含關係的貪心統計
SGU 133 Border:區間包含關係的貪心統計 有 N ≤ 16000 個哨所,每個守衛區間 [Aₖ, Bₖ](所有 Aₖ 互不相同,所有 Bₖ 互不相同
HDU 1170 Balloon Comes! - 簡單四則運算
題目大意 多組測試,每組給運算符 +, -, *, / 和兩正整數,輸出結果。除法結果若非整數,保留兩位小數。T < 1000。 關鍵點 除法判斷整除:a
LeetCode Minimum Window Substring - 滑動窗口 O(n) 解法
題目大意 給定字符串 S 和 T,找出 S 中包含 T 所有字符的最短子串。要求 O(n) 時間。不存在返回空串。答案唯一。 例:S=ADOBECODEBANC
HDU 1164 Eddy's Research I - 質因數分解
題目大意 輸入多行,每行一個整數 x (1 < x ≤ 65535),輸出其質因數分解乘積形式(如 9412 = 2*2*13*181)。輸入以 EOF 結束。
LeetCode 134 Gas Station - 加油站環路問題 O(n) 解法
題目大意 N 個加油站成環,第 i 站有油 gas[i],開往下站耗油 cost[i]。油箱無限大,初始為空。求能跑完全程的起始站索引,不存在返回 -1。解唯一
C++ STL 容器入門:分類、特點與選擇指南
什麼是容器 容器是存儲其他對象的對象,封裝了內存管理、增刪改查等操作。優勢:自動擴展、算法優化、代碼復用。C++ STL 以模板實現,類型安全、效率高。 三大
POJ 2001 Shortest Prefixes - 字典樹求最短唯一前綴
題目大意 給定 2~1000 個單詞(長度 1~20,小寫),對每個單詞找出最短前綴,使該前綴在所有單詞中唯一。精確匹配優先於前綴匹配(如 car 本身是單詞,
C++ STL 容器全解析:stack、queue、priority_queue 詳解與實現原理
標準庫容器分類 順序容器:vector, deque, list, forward_list, array 關聯容器:set, map, multiset,
POJ 2503 Babelfish - 字典查找(Map 與 Trie 兩種實現)
題目大意 最多 10 萬條詞典條目(英文單詞 + 外語單詞),外語單詞唯一。隨後最多 10 萬個外語單詞查詢,輸出對應英文,找不到輸出 eh。單詞長度 ≤ 10
HDU 1194 Beat the Spread! - 由和與差求兩數
題目大意 給定兩非負整數 s(和)和 d(絕對差),求兩非負整數 x, y(x ≥ y)使 x+y=s, |x-y|=d。無解輸出 impossible。多組測
HDU 1196 Lowest Bit - 求最低位 1 的值
題目大意 給定正整數 A (1 ≤ A ≤ 100),輸出其二進制表示中最低位 1 所代表的值。例如 26 (110102) 最低位 1 在第 1 位(從 0