快速選擇算法:基於三數取中分區的第 K 小元素查找 C++ 實現
快速選擇算法:基於三數取中分區的第 K 小元素查找 C++ 實現 快速選擇(QuickSelect)平均 O(n) 找第 k 小元素,核心是快速排序的 part
POJ 2195 Going Home:KM 算法解決人屋匹配最小距離和
POJ 2195 Going Home:KM 算法解決人屋匹配最小距離和 題目:網格地圖上有 n 個人(m)和 n 棟房子(H),每人分配一間房,求曼哈頓距離總
HDU 4719 Oh My Holy FFF:線段樹優化 DP 分組士兵最大化得分
HDU 4719 Oh My Holy FFF:線段樹優化 DP 分組士兵最大化得分 題目:N 名士兵排成隊,身高 H[i]。分成若干連續組,每組長度 ≤ L,
LeetCode Triangle:三角形最小路徑和的動態規劃與 DFS 解法
LeetCode Triangle:三角形最小路徑和的動態規劃與 DFS 解法 問題:給定三角形數組,從頂部到底部相鄰數字移動,求最小路徑和。要求 O(n) 額
HDU 4505 電梯調度:簡單模擬計算總運行時間
HDU 4505 電梯調度:簡單模擬計算總運行時間 題目:電梯初始 0 樓,已知乘客目標樓層,上一層 6s,下一層 4s,開門 5s(僅有人上下才開),每下一人
Codeforces Round #281 Div.2 題解:A~D 四題完整分析與代碼
Codeforces Round #281 Div.2 題解:A~D 四題完整分析與代碼 A. 模擬:足球黃紅牌記錄 記錄兩隊球員黃牌計數,紅牌直接或兩黃變一
HDU 1272 小希的迷宮:並查集判斷圖是否為樹
HDU 1272 小希的迷宮:並查集判斷圖是否為樹 題目:給定若干條無向邊,判斷是否構成一棵樹。樹的兩個必要條件:① 無環 ② 邊數 = 頂點數 - 1(連通)
C++ 動態鏈表完整實現:從節點定義到完整 List 類封裝
C++ 動態鏈表完整實現:從節點定義到完整 List 類封裝 本文逐步構建一個功能完整的單向鏈表模板類,涵蓋插入、刪除、查找、遍歷、清空等核心操作,展現 C++
BZOJ 1085 [SCOI 2005] 騎士精神:IDA* 搜索解 5×5 棋盤騎士歸位
BZOJ 1085 [SCOI 2005] 騎士精神:IDA* 搜索解 5×5 棋盤騎士歸位 題目:5×5 棋盤上有 24 個棋子(0/1)與一個空格(*),目
BZOJ 1072 [SCOI 2007] 排列 perm:狀壓 DP 計算模 d 為 0 的排列數
BZOJ 1072 [SCOI 2007] 排列 perm:狀壓 DP 計算模 d 為 0 的排列數 題目:給定長度 ≤10 的數字字符串 s(可能有重複數字)
HDU 1856 More is better:並查集求最大朋友圈規模
HDU 1856 More is better:並查集求最大朋友圈規模 題目:1000 萬男孩,給定 n 對直接好友關係,要求保留的男孩任意兩人直接或間接好友(
POJ 3565 Ants:KM 算法求二分圖最小權匹配的經典應用
POJ 3565 Ants:KM 算法求二分圖最小權匹配的經典應用 題目:n 隻螞蟻與 n 棵蘋果樹一一對應,每隻螞蟻走到一棵樹,路徑不相交(實為最小化總距離)
LeetCode Search for a Range:有序數組查找目標區間的兩種二分解法
LeetCode Search for a Range:有序數組查找目標區間的兩種二分解法 問題:給定升序數組 nums 與目標值 target,找到目標值的起
C++ 應用程序入口模式:主線程運行循環與啟動方式
C++ 應用程序入口模式:主線程運行循環與啟動方式 設計一個可復用的應用程序框架核心:封裝主線程循環、優雅停止機制,支持控制台與 GUI (MFC) 兩種啟動模
NYOD 關於 521:數位 DP 預處理統計包含 5、2、1 及連續 521 的數字個數
NYOD 關於 521:數位 DP 預處理統計包含 5、2、1 及連續 521 的數字個數 題目:多組查詢 [a,b],統計區間內同時包含數字 5、2、1 的數
四進制大數加減法 C++ 實現:分類討論與前導零處理
四進制大數加減法 C++ 實現:分類討論與前導零處理 實現四進制(基數 4)大整數的加法與減法,支持帶符號數,採用字符串存儲,分情況討論符號組合,最終統一歸歸到
NYOD 無主之地 1:任務區域統計的簡單哈希計數
NYOD 無主之地 1:任務區域統計的簡單哈希計數 題目:輸入多組 m n(區域編號、任務數),以 0 0 結束,輸出每個區域任務總數(不要求排序)。 解法: