C++ 函數對象與 Lambda 表達式深度解析
函數對象基礎 函數對象(仿函數)是重載了 operator() 的類實例。優於普通函數指針之處在於可攜帶狀態(成員變量),且能內聯優化。STL 算法廣泛使用:
NOJ 2079 Prime:莫比烏斯反演計算互質對數
問題描述 給定 n 個整數(≤10^5),求其中互質數對(gcd=1)的個數。多測試用例,n≤10^5。 數學建模:容斥原理與莫比烏斯函數 1 的數對。設 n
HDOJ 5338 ZZX and Permutations:線段樹+樹狀數組構造字典序最大排列
問題重述 給定去掉括號後的排列分解序列,需恢復原排列並使其字典序最大。排列可分解為不相交循環,去括號後順序不唯一,需選最優方案。 貪心策略與數據結構 從 1
HDU 1686 Oulipo:KMP 算法統計模式串在文本中出現次數
問題描述 給定模式串 b 和文本串 a,求 b 在 a 中出現的次數(可重疊)。經典 KMP 匹配問題。 KMP 核心流程 預處理 LCPS 數組:對模式串
HDU 3746 Cyclic Necklace:KMP 失敗函數求最小循環節擴展
問題建模 給定字符串,求需在尾部添加最少字符,使其成為由 n (n≥2) 個相同循環節組成的字符串。實質是求字符串的最小循環節長度,並計算補齊至整數倍所需字符數
HDU 5348:歐拉路徑與邊刪除技巧實現 O(n+m) 遍歷
問題描述 給定無向圖,需找到一條路徑使得每條邊恰好遍歷一次(歐拉路徑)。關鍵在於從奇度頂點開始搜索,並即時刪除已遍歷邊,保證線性時間複雜度。 核心算法:Hie
IDA*算法解決N皇后覆蓋問題:迭代加深與位運算優化
問題背景 本題要求在棋盤上放置最少數量的皇后,使其覆蓋所有格子。皇后可攻擊同行、同列、同對角線的所有格子。題目給出深度上限為5,即最多需5個皇后即可覆蓋整個棋盤
UVA 11177 凸多邊形與圓相交面積:二分搜尋 + 幾何分解
題目大意 給定一個凸 n 邊形(按順/逆時針給出頂點)與以原點為圓心的圓,求最小半徑 R,使得圓與多邊形的相交面積 ≥ 給定值 S。 約束:n ≤ 50,多測資
HDU 5344 MZL's XOR 解題詳解:利用異或性質優化計算
題目背景與核心觀察 HDU 5344 MZLs XOR 是一道經典的異或運算應用題。給定一個由線性同餘法生成的陣列 A(長度 n = 5×10⁵),要求計算所有
POJ 1837 Balance:天平平衡 DP(狀態壓縮枚舉)
問題描述 天平兩臂長 15,有 C (≤20) 個掛鉤,位置為 -15..15 非零整數(負左正右)。有 G (≤20) 個砝碼,重量 1..25 互不相同。必
S-Nim:SG 函數解多堆取石子遊戲
問題描述 經典 Nim 遊戲變體:每回合只能從一堆中取走屬於集合 S 的石子數(S 大小 k ≤ 100,元素 ≤ 10000)。給定多組查詢,每組包含 l (
HDU 1258 Sum It Up:子集和輸出所有組合 (DFS 去重)
問題描述 給定目標和 t 和 n (≤12) 個非遞增排列的正整數(可能重複)。找出所有和為 t 的不同組合(每個數最多用其出現次數)。輸出按字典序降序:先比較
POJ 1745 Divisibility:模 K 餘數 DP 判定可整除
問題描述 給定 N (≤10000) 個整數序列,在每兩個數之間填 + 或 -,問能否使最終結果能被 K (≤100) 整除。輸出 Divisible 或 No
POJ 1160 Post Office:郵局選址經典 DP
問題描述 一條直線公路上有 V (≤300) 個村莊,位置嚴格遞增。在其中 P (≤30, P≤V) 個村莊建郵局,使所有村莊到最近郵局的距離之和最小。輸出最小
LeetCode 93 Restore IP Addresses:回溯生成合法 IP
問題描述 給定只含數字的字符串 s,插入三個點將其分成四段,每段為 0~255 且無前導零(除非該段就是 0)。返回所有合法 IP 地址。 回溯框架 遞歸函數
HDU 1072 Nightmare:帶炸彈倒計時的迷宮 BFS
問題描述 n,m ≤ 8 的迷宮,格子類型:0 牆、1 空地、2 起點、3 終點、4 炸彈重置裝置(將倒計時重置為 6)。初始倒計時 6,每移動一步(上下左右)
HDU 4349 組合數奇數個數:Lucas 定理與二進制性質
問題描述 給定 n,求二項式係數 C(n,0), C(n,1), ..., C(n,n) 中奇數的個數。多組輸入,以 EOF 結束。 核心洞察:Lucas 定