POJ 3243 Clever Y:離散對數問題與 BSGS 算法詳解
問題背景 在數學中,給定底數 X、指數 Y 和模數 Z,計算 K = XY mod Z 是一個經典的模冪問題,可以用快速冪算法在 O(log Y) 時間內解決。
LeetCode 1 Two Sum:哈希表 O(n) 求兩數之和
題目大意 給整數數組 nums 和目標值 target,找出兩數下標使其和為 target。假設唯一解,不重複使用同一元素。返回下標數組(順序不限)。 最優解
LeetCode 160 Intersection of Two Linked Lists:雙指針法求交點
題目大意 給兩個單鏈表頭節點,求它們相交的起始節點(引用相同,非值相同)。無交點返回 null。要求 O(n) 時間,O(1) 空間,不修改鏈表。 核心技巧:
POJ 2417 Discrete Logging:BSGS 算法求離散對數
題目大意 給質數 P (≤ 2³¹), 基數 B (2 ≤ B < P), 目標 N (1 ≤ N < P)。求最小非負整數 L 使 `B^L ≡ N (mod
POJ 3990 Fermat Point in Quadrangle:凸包判斷 + 費馬點性質
題目大意 給四邊形四個頂點(順序隨機),求其費馬點(使到四頂點距離和最小的點)的最小距離和。輸出保留 4 位小數。 核心幾何性質 **凸四邊形**:費馬點
HDU 1788 Chinese Remainder Theorem Again:最小公倍數減 a
題目大意 求最小正整數 N,使得對給定的 m₁, m₂, ..., mᵢ,均有 `N ≡ mⱼ - a (mod mⱼ)`。即 `N + a` 能被所有 mⱼ
UVa 515 King:差分約束系統 + SPFA 判斷可行性
題目大意 k` 或 `< k`。判斷是否存在滿足所有約束的整數序列。n ≤ 100, m ≤ 100。 建模:差分約束系統 定義前綴和 `X[i] = S
HDOJ 3309 Roll The Cube:雙球同步滾動 BFS 求最少按鍵次數
題目大意 n×m (≤ 22) 地圖:. 空地、* 牆、B 球 (2個)、H 洞 (2個)。上下左右鍵控制**兩球同時向同一方向滾動**,直到撞牆或落入洞。球落
POJ 3126 Prime Path:BFS 在四位素數圖中尋找最短路徑
題目大意 給兩個四位素數 start, end。每步可修改一位數字,修改後必須仍為四位素數(首位不為 0)。求最少步數。多測試案例。不可達輸出 Impossib
LeetCode 66 Plus One:數組表示整數加一
題目大意 非負整數以數組形式存儲(最高位在前),如 [1,0,9] 代表 109。實現加 1 操作,返回新數組。 方法一:從末位模擬進位(推薦) 從最後一位
輸出楊輝三角:C++ 與 Java 兩種實現
楊輝三角性質 第 n 行 (0-indexed) 有 n+1 個數。 `C(n, k) = C(n-1, k-1) + C(n-1, k)`,邊界 `C(n,
LeetCode 21 Merge Two Sorted Lists:遞歸/迭代合併有序鏈表
題目大意 合併兩個升序鏈表為一個升序鏈表,返回新頭節點。要求拼接原節點,不創建新節點。 迭代法(推薦) 虛擬頭節點 `dummy`,尾指針 `tail` 指
LeetCode 56 Merge Intervals:排序合並重疊區間
題目大意 給區間列表,合併所有重疊/相鄰區間。例如 [[1,3],[2,6],[8,10],[15,18]] → [[1,6],[8,10],[15,18]]。
LeetCode 55 Jump Game:貪心判斷能否到達終點
題目大意 數組 nums,每個元素代表在該位置**最大**跳躍長度。初始在位置 0,判斷能否到達最後一個下標。 貪心核心:維護最遠可達位置 遍歷數組,維護
LeetCode 54 Spiral Matrix:順時針螺旋遍歷矩陣
題目大意 給 m×n 矩陣,按順時針螺旋順序輸出所有元素。例如 [[1,2,3],[4,5,6],[7,8,9]] → [1,2,3,6,9,8,7,4,5]。
POJ 3252 Round Numbers:組合數學 + 數位 DP 計數二進制 0≥1 的數
題目大意 查詢區間 [S, E] 中,有多少整數的二進制表示中 **0 的個數 ≥ 1 的個數**。S, E < 2³¹。多測試案例。 核心思路:f(x) =
區間和問題:前綴和 + Hash 表 O(n) 查找連續子數組和為 K
題目大意 給長度 n (≤ 10000) 數組,查詢是否存在連續子數組和恰好等於 k。輸出起始、結束位置 (1-indexed),多解取 s 最小、再 e 最小
HDOJ 1242 Rescue:BFS 迷宮最短時間(守衛殺敵耗時)
題目大意 N×M (≤ 200) 迷宮:. 路、# 牆、a 天使(終點)、r 朋友(起點,可能多個)、x 守衛。移動上下左右 1 時間,殺守衛額外 1 時間(進