九度 OJ 1001 矩陣加法與零行列統計
問題描述 給定 M×N 矩陣 A 和 B (M,N ≤ 10),計算 C = A+B,統計 C 中全零行數與全零列數之和。 解法:直接模擬 讀入 M, N。
九度 OJ 1060 完數與盈數 - 因子和分類
問題描述 找出 2 到 60 之間的完數(因子和等於自身)和盈數(因子和大於自身)。輸出格式:E: e1 e2 ... 和 G: g1 g2 ...。 解法:
UVA 11174 Stand in a Line - 樹形 DP 計數排列數
問題描述 給定有向森林(每個節點最多一個父節點),求合法排列數:父節點必須出現在子節點之前。模 1e9+7。 樹形 DP + 多重集排列 對每棵樹根,計算以該
POJ 3177 Redundant Paths - 雙邊連通分量縮點 + 樹葉子數
問題描述 給定連通無向圖,需添加最少邊使其成為邊雙連通圖(即無橋)。輸出需加邊數。 理論基礎 將圖的邊雙連通分量縮點,形成一棵樹(橋樹)。樹中葉子節點數為 L
HDU 2601 An easy problem - 數學轉化求約數個數
問題描述 給定 N,求正整數對 (i, j) 滿足 N = i*j + i + j 的方案數。 數學轉化 N = i*j + i + j ⇔ N + 1 =
BZOJ 1822 Frozen Nova - 二分答案 + 最大流
問題描述 平面上有巫妖和小精靈,樹木阻擋視線。巫妖有攻擊半徑和技能 CD。在半徑內且視線無阻擋的精靈可被秒殺。求最短時間消滅所有精靈。 建模:二分時間 + 最
LeetCode 152 比較版本號 - 簡潔單次遍歷實現
問題描述 同 5407,比較兩個版本號字符串。 優化:雙指針原地解析 避免 split 產生數組開銷,直接在字符串上雙指針解析數字段。 代碼實現(Java)
LeetCode 50 多數元素 - Boyer-Moore 投票算法 O(1) 空間
問題描述 n/2 的元素。假設一定存在。 四種解法對比 方法時間空間備註 暴力雙循環O(n²)O(1)超時 哈希表統計O(n)O(n)簡單通用 分治法O(
九度 OJ 1198 高精度加法 - 大整數相加
問題描述 實現大整數加法,輸入兩個不超過 1000 位的非負整數,輸出其和。多組測試,EOF 結束。 模擬豎式加法 將字符串反轉,或從末尾向前遍歷。 逐位相
BZOJ 2257 瓶子與燃料 - 數學歸納與約數枚舉
問題描述 有若干固定容量的瓶子。火星人每次操作:從一瓶倒到另一瓶、倒掉一瓶、裝滿一瓶。每次給你能給出的最少燃料。你想從 k 個瓶子中獲得燃料,求最多能獲得多少。
LeetCode 154 Excel 表列標題 - 另一種實現視角
問題重述 同 5406,正整數轉 Excel 列標題(26 進制無零位)。 另一種寫法:預減 1 法 觀察:若將 n 先減 1,則 0→A, 1→B, ...
HDU 1010 Tempter of the Bone - DFS 剪枝尋路
問題描述 迷宮 N×M (N,M<7),起點 S,終點 D,牆壁 X。每秒移動一格(上下左右),進入格子後下一秒沉陷(不可再次進入)。必須在第 T 秒恰好到達
LeetCode 兩個有序數組的中位數 - 二分查找第 k 小
問題描述 給定兩個已排序數組 A、B,長度分別為 m、n。求合併後的中位數。要求時間複雜度 O(log(m+n))。 轉化為求第 k 小元素 若總長度 L
HUST 1017 Exact Cover - DLX 算法求精確覆蓋
問題描述 給定 N×M 0-1 矩陣(N,M ≤ 1000),選擇若干行,使每一列恰好有一行被選中且該位置為 1。輸出任意一組解的行數及行索引,無解輸出 NO。
AES 加密 C++ 調用 Crypto++ 庫完整示例
AES 基礎知識 高級加密標準(AES),分組長度 128 位(16 字節)。 密鑰長度:128/192/256 位。 工作模式:ECB(不需 IV)、CBC
POJ 1611 The Suspects - 並查集傳染病傳播
問題描述 學生分組,同組視為密切接觸。學生 0 為疑似感染者。若一組中有疑似,全組標記為疑似。求最終疑似人數。多組測試,n≤30000, m≤500。 並查集
LeetCode 二叉樹最大路徑和 - 遞歸後序遍歷
問題描述 給定二叉樹,找出最大路徑和。路徑可從任意節點開始到任意節點結束,至少包含一個節點。路徑不需經過根節點。 遞歸分析 對每個節點,考慮以該節點為「最高點