HDU 4704 Sum:隔板法 + 費馬小定理求 2^{n-1} 模 1e9+7
題目大意 將整數 n 拆分為若干正整數之和(順序相關),設 Si 為拆成 i 份的方案數。求 Σ S_i (1≤i≤n) mod 1,000,000,007。n
Erlang 學習資源彙總:從入門到分布式系統實戰
入門文檔(官方首選) Erlang 官方文檔:erlang.org/doc/ — 語言參考、標準庫、效率指南、系統原理,最權威、最全面。 《Erlang Pr
最長遞增子序列 (LIS) O(n log n) 算法完整講解與 C++ 實現
問題定義 給定長度 n 的數組,求最長嚴格遞增子序列的長度(不要求連續)。 O(n log n) 核心思想:耐心排序 維護數組 d[len]:長度為 len
HDU 1027 Ignatius and the Princess II:字典序第 M 小排列的 DFS 生成
題目大意 給定 n 和 m,輸出 1~n 的全排列中字典序第 m 小的排列。n ≤ 10,m 不超過總排列數。 DFS + 計數器 遞歸生成全排列,按字典序(
Codeforces Round #287 (Div. 2) A-E 題解總覽
A. 貪心排序 輸入 n 個數與 k,選最多不超過 k 總和的數,輸出個數與下標。解法:結構體存 {value, index},按值升序排序,貪心累加直到超過
LeetCode Restore IP Addresses:DFS + 回溯 + 剪枝還原 IP 地址
題目大意 給定純數字字符串 s,插入三個點分成四段,每段 0~255 且無前導零(除非單個 0),返回所有合法 IP 地址。例:25525511135 → [2
POJ 1830 開關問題:異或方程組高斯消元法
題目大意 N ≤ 28 個開關,初始狀態與目標狀態給定。操作開關 i 會翻轉自身及關聯開關 j 的狀態。每個開關最多操作一次。求達到目標狀態的方案數。 數學建
HDU 1026 Ignatius and the Princess I:BFS + 優先隊列解最短路徑
題目大意 n×m 地圖,. 空地,X 障礙,數字 1~9 表示怪獸(需停留該數秒)。從 (0,0) 走到 (n-1,m-1),四向移動每步 1 秒,打怪額外耗時
UVA 10651 Pebble Game:狀態壓縮 DFS/BFS 解棋盤遊戲
題目大意 12 孔棋盤,初始有棋子佔據某些孔。移動規則:一顆棋子跳過相鄰棋子落入緊鄰空孔,被跳過棋子被移除(類似跳棋)。求可達狀態中棋子最少數量,及對應移動步驟
UVA 10051 Tower of Cubes:立方體疊塔的 DP + 路徑重構
題目大意 給定 n ≤ 500 個立方體,每面有顏色。疊塔規則:上方立方體的底面顏色 = 下方立方體的頂面顏色。每個立方體最多用一次,求最高塔高度並輸出構造方案
拓撲排序模板:Kahn 算法 C++ 通用實現(含唯一性/環判斷)
適用場景 有向圖拓撲排序。 1 即不唯一)。 判斷圖中是否有環(排序節點數 < 總節點數)。 核心代碼(鄰接表 + 隊列) // 拓撲排序通用模板 //
POJ 1836 Alignment:枚舉中間點雙向 LIS 解士兵排隊問題
題目大意 n ≤ 1000 名士兵按編號 1~n 排成一排,身高已知。讓部分士兵出列,使剩餘士兵(保持相對順序)滿足:每人向左或向右看,視線不被更高或等高者擋住
POJ 1094 拓撲排序:偏序關系動態判斷的經典實現
題目大意 給定 n 個大寫字母(n ≤ 26)和 m 條關系 A<B。逐條讀入關系,判斷: 某步驟後排序唯一確定 → 輸出 Sorted sequenc
C++ 為什麼基類析構函數必須是虛函數:深度解析與反例
問題現象 class Base { public: ~Base() { cout << Base dtor\n; } }; class Derived : pu
LeetCode Binary Tree Upside Down:三種翻轉二叉樹的解法對比
題目大意 給定一棵二叉樹,所有右節點要么是葉子要么為空(梳子狀)。將樹「倒過來」:原左子樹變為新樹,原根變為最右葉子,原右葉子變為左葉子。返回新根。例:{1,2
UVA 10534 Wavio Sequence:最長山脈子序列的 O(n log n) 解法
題目大意 給定長度 n ≤ 10000 的序列,求最長的「Wavio 序列」長度。Wavio 序列:先嚴格遞增後嚴格遞減,且峰值唯一(即山脈形狀)。 核心思路
ZOJ 1037 / HDU 1046 Gridland:找規律的幾何最短路徑
題目大意 在 n × m 的網格中,從左上角 (1,1) 出發,繞行所有格子最後回到起點,求最短路徑長度。移動只能上下左右,每步長 1。n, m ≤ 10000