HDU 1022 Train Problem I:棧模擬火車調度
問題描述 有 n 輛火車(編號 1..n)進站,給定入站序列和出站序列,判斷出站序列是否合法。合法則輸出 Yes. 和操作序列(in 入棧,out 出棧),否則
LeetCode 20 Valid Parentheses:棧匹配括號有效性判斷
問題描述 給定只包含 (, ), {, }, [, ] 的字符串,判斷括號是否有效。有效條件:左括號必須用相同類型右括號閉合,且閉合順序正確(後開先閉)。 棧
NYOJ 20 吝啬的國度:樹上 DFS 求父節點
NYOJ 20 吝啬的國度:樹上 DFS 求父節點 題目:N 個城市,N-1 條路構成樹。給定起點 S,對每個城市 i,求從 S 到 i 路徑上 i 的上一個城
哈夫曼編碼 C++ 實現:優先隊列構建最優前綴碼
哈夫曼編碼 C++ 實現:優先隊列構建最優前綴碼 哈夫曼編碼是構建最優前綴碼的經典貪心算法:反覆合併權值最小的兩棵樹,直到剩一棵。 關鍵數據結構:自定義比較的
HDU 5147 Sequence II:樹狀數組離線處理四元組計數
HDU 5147 Sequence II:樹狀數組離線處理四元組計數 題目:長度 n(≤50,000)的 1~n 排列,求四元組 (a,b,c,d) 數量,滿足
LeetCode Roman to Integer:羅馬數字轉整數規則與實現
LeetCode Roman to Integer:羅馬數字轉整數規則與實現 輸入合法羅馬數字(1~3999),轉為整數。 羅馬數字規則速查 符號值 I1
降階法計算行列式 C# 實現:修正索引越界 Bug
降階法計算行列式 C# 實現:修正索引越界 Bug 本文提供基於降階法(拉普拉斯展開)的行列式遞歸計算 C# 代碼,並修正了原版中隨機展開行時的索引越界錯誤。
NYOJ 21 三個水杯:BFS 狀態空間搜索經典題
NYOJ 21 三個水杯:BFS 狀態空間搜索經典題 V3,初始滿大杯,其餘空。杯間倒水,求達到目標狀態 (E1,E2,E3) 的最少步數,不可達輸出 -1。
SOJ 4389 川大貼吧水王:Boyer-Moore 投票算法找眾數
SOJ 4389 川大貼吧水王:Boyer-Moore 投票算法找眾數 N/2,求該 ID。多測試組。 核心算法:Boyer-Moore 多數投票算法 維護
統計不同單詞個數:C 語言字符串處理與去重
統計不同單詞個數:C 語言字符串處理與去重 題目:多行輸入,每行一篇文章(小寫字母和空格),遇到 # 結束。輸出每行不同單詞的總數。 解法:字符串分割 + 排
HDU 5148 Cities:樹上 DP 選 K 點最小化期望距離
HDU 5148 Cities:樹上 DP 選 K 點最小化期望距離 題目:N(≤2000)節點的樹,選 K(≤50)個點,使任意兩點間期望距離最小。輸出期望值
POJ 2484 A Funny Game:環狀對稱博弈必勝策略
POJ 2484 A Funny Game:環狀對稱博弈必勝策略 題目:N 個數圍成一環,雙方輪流取 1 個或相鄰 2 個,無法取者負。求先手勝負。 核心結論
C++ 虛析構函數詳解:為什麼基類析構函數必須聲明為 virtual
C++ 虛析構函數詳解:為什麼基類析構函數必須聲明為 virtual 當基類指針指向派生類對象,並通過基類指針 delete 釋放記憶體時,若基類析構函數非虛函
Effective STL 條款 7:容器持有 new 指針時必須在析構前 delete
Effective STL 條款 7:容器持有 new 指針時必須在析構前 delete 當 STL 容器(如 vector、list)存儲通過 new 分配的
SOJ 4393 LaoB's problem1:離線查詢前綴和與排序優化
SOJ 4393 LaoBs problem1:離線查詢前綴和與排序優化 題目:長度 N(≤100,000)的數列,M(≤100,000)次查詢。每次給下標 x
HDU 1002 Let the Balloon Rise:字符串頻率統計模擬題
HDU 1002 Let the Balloon Rise:字符串頻率統計模擬題 題目:輸入 N 個氣球顏色(字符串,小寫字母 ≤15 字符),輸出出現次數最多
POJ 1704 Georgia and Bob:階梯博弈與 Nim 遊戲轉化
POJ 1704 Georgia and Bob:階梯博弈與 Nim 遊戲轉化 題目:N 個棋子在正半軸,雙方輪流向左移動棋子,不能超過其他棋子或越界(負半軸)