POJ 3898 Software Industry Revolution:DP+模式匹配求最簡密碼複雜度
題目大意 給定模式串 P(含小寫字母、?、*)和超級密碼串 S(純小寫)。求複雜度最小的密碼 T,滿足: T 匹配 P:? 匹配任意單字母,* 匹配任意長度(
C++ Lambda vs std::bind 性能深度對比:編譯器優化與運行時開銷
測試場景 循環 10⁹ 次調用可調用對象,累加計數器。對比三種寫法: Lambda 直接傳遞:auto f = [&x](uint64_t i){ x+=i;
C/C++內存分配全景:棧、堆、靜態區、常量區深度解析
四大內存區域 區域分配方式管理者生命週期典型內容 代碼區編譯時系統進程整個運行期函數二進制指令 全局/靜態區編譯時系統進程整個運行期全局變量、static變量
HDU 1878 歐拉回路:並查集連通性+度數判定
題目大意 無向圖 N 個節點、M 條邊。判斷是否存在歐拉回路(遍歷每條邊恰好一次並回到起點)。多測試用例,N=0 結束。 歐拉回路判定定理(無向圖) 圖**
HDU 1397 素數對猜想:篩法預計算+雙指針統計Goldbach分解數
題目大意 給定偶數 n (4 ≤ n < 32768),求有多少組不同質數對 (p1, p2) 滿足 p1 + p2 = n 且 p1 ≤ p2。多測試用例,0
HDU 1248 死亡騎士買道具:完全背包/三重循環求最小小費
題目大意 有一張面值 N (≤10000) 的鈔票,購買三種道具:血瓶 150、魔法藥 200、無敵藥水 350。不找零,多餘作小費。求最小小費(即 N - m
POJ 3667 Hotel:線段樹區間賦值與最大連續空閒查詢
題目大意 酒店 n 個房間(1~n),初始全空。m 操作: 1 a:查詢是否有連續 a 個空房,有則入住最左端區間,輸入起始房號;否則輸出 0。 2 a b:
TopCoder SRM 577 Div2 Hard:EllysRoomAssignmentsDiv2 概率計算
題目大意 參賽者按 ratings 字符串列表給出評分。Elly 評分為第一個數字。將所有評分降序排列,每 20 人一間房(最後一間可不足 20)。Elly 被
HDU 1257 最少攔截系統:貪心求最長不降子序列個數
題目大意 導彈高度序列,每套系統只能攔截**不高於上一發**的導彈(即非遞增子序列)。求最少需要多少套系統攔截所有導彈。等價於:將序列分解為最少數量的非遞增子序
二叉樹最大寬度與高度:DFS統計每層節點數
題目描述 給定二叉樹節點數 n 及每個節點的左右孩子編號(0 表示空),輸出樹的最大寬度(同層最多節點數)與高度(最大層數)。 解法:DFS 遍歷統計層級節點
打印1到最大n位數:大整數遞增法與全排列法
題目 輸入 n,按順序打印從 1 到最大的 n 位數(即 10^n - 1)。n 可能較大,超出內建類型範圍,需模擬大整數加法或全排列生成。 方法一:字符數組
HDU 3336 Count the String:KMP統計所有前綴出現次數和
題目大意 給定字符串 S(長度 len),求其**每個非空前綴**在 S 中作為子串出現次數的總和,模 10007。多測試用例。 KMP Next 數組與前綴
利用數學求和找出連續整數陣列中的唯一重複元素
問題描述 給定一個包含 101 個元素的整數陣列,元素值範圍為 [1, 100],且 1 到 100 每個數字至少出現一次。因為總數超出 100,必有且僅有一個
利用異或運算找出陣列中出現奇數次的元素
演算法核心思想 在處理「陣列中僅有一個元素出現奇數次,其餘皆為偶數次」這類問題時,異或(XOR)運算提供了極其優雅的 O(n) 時間、O(1) 空間解法。關鍵在
POJ 2104 K-th Number:分塊樹(劃分樹)模板詳解
問題描述 靜態數組 a[1..n],多次查詢:區間 [l,r] 中第 k 小的數。n ≤ 100,000,m ≤ 5,000(實際 POJ 2104 為 m ≤
JOJ 2410 The Knight Problem:棋盤騎士最短路徑BFS
題目描述 標準 8x8 棋盤,部分格為障礙。騎士從起點移動到終點,每步走「日」字(8個方向)。求最少步數,或判定不可達。多組測試,n=-1 結束。 解法:廣度
圖論基礎:拓撲排序與AOE網絡關鍵路徑完整指南
一、拓撲排序 1. 概念 有向無環圖(DAG)的頂點線性序列,使得對任意邊 (u,v),u 在 v 之前。應用:課程先修關係、編譯依賴、任務調度。 2. Ka