ZOJ 3768 連續登錄獎勵:規律發現與三層二分查找求解
問題重述 連續登錄獎勵:第 i 天登錄得 i 分,中斷則重置為 1。給定目標 N (≤ 123456789),求最少天數組合(每組連續登錄),使總分恰為 N。輸
ZOJ 3772 函數計算:線段樹維護 2×2 矩陣區間乘積
問題建模 給定數列 A[1..n],定義遞推: F[1] = A[1], F[2] = A[2] F[i] = F[i-1] + A[i] * F[i-2]
C++ vector 完全指南:數組習慣與 STL 習慣雙模式詳解
頭文件與命名空間 #include using namespace std; // 或 std::vector 模式一:數組習慣(固定大小、下標訪問)
1 到 N 平方和公式推導與應用:數學歸納法證明及相關求和技巧
核心公式 平方和公式: S₂(n) = 1² + 2² + ... + n² = n(n+1)(2n+1) / 6 數學歸納法證明 基礎步驟 (n=1) 左邊
每日一練:最長平台問題(已排序數組中最長連續相同元素段)
問題 給定非遞減排序數組,「平台」定義為連續相同元素且不可延伸的段。求最長平台的長度與值。 初學者寫法(多變量、雙重判斷) max) { max=tmp;
九度 OJ 1105:Atbash 密碼字符串轉換
問題描述 輸入多行字符串,遇到單獨 ! 結束。每行將字母按 Atbash 密碼轉換:a↔z, b↔y, ...(大小寫分別轉換),非字母不變。輸出轉換後的字符串
Java 方法重載為何選 String 而非 Object?null 的類型推斷規則
現象代碼 public class Test { public static void main(String[] args) { m
HDU 4283 - You Are the One:區間 DP 最小化憤怒值
問題建模 n 人排隊,第 i 人屌絲值 a[i]。若排在第 k 位,憤怒值 a[i]×(k-1)。有一黑屋可暫存人。求總憤怒值最小。 區間 DP 狀態定義
POJ 3608 - Bridge Across Islands:兩凸包最短距離(旋轉卡殼)
問題模型 給定兩個凸多邊形(頂點按序給出),求兩多邊形邊界之間的最小歐氏距離。N,M ≤ 10000。 旋轉卡殼求兩凸包距離 找到多邊形 1 最低點 p、多
LeetCode 73 - Set Matrix Zeroes:O(1) 空間原地標記法
問題與直觀解法缺陷 矩陣中若某元素為 0,將其所在行列全部置 0。直觀用額外陣列標記行列,空間 O(m+n)。題目要求 O(1) 額外空間。 巧妙思路:用第一
POJ 2079 - Triangle:凸包上最大面積內接三角形(旋轉卡殼)
問題與幾何性質 給定 n ≤ 50000 點,求以這些點為頂點的最大面積三角形。最大面積三角形的三個頂點必在凸包上。先求凸包(Andrew 算法 O(n log
從中序與後序遍歷構造二叉樹:非遞歸棧模擬法
遞歸版缺陷 LeetCode 上遞歸切片數組會導致 Memory Limit Exceeded,需迭代實現。 棧模擬核心思想 後序遍歷最後一個元素為根 從後
LeetCode 72 - Edit Distance:動態規劃求最小編輯距離
問題定義 給定兩字串 word1, word2,允許操作:插入、刪除、替換(代價均為 1)。求將 word1 轉為 word2 的最小操作數。 DP 狀態與轉
UVA 10883 - Supermean:組合數學 + 對數技巧避免溢位
問題與公式推導 「超級平均數」定義:相鄰兩數取平均,重複直到剩一個數。對數列 a₀..aₙ₋₁,最終結果為: ans = Σ C(n-1, i) × aᵢ /
深入探索 Spring 技術內幕(一):Spring 概述與核心概念
什麼是 Spring? Spring 是開源的 控制反轉 (IoC) 和 面向切面 (AOP) 容器框架,核心目的是簡化企業級開發。 控制反轉 (IoC) 傳
UVA 11464 - Even Matrix:首行確定全矩陣的奇偶推理
問題描述 給定 n×n 0/1 矩陣(n ≤ 18),操作:選一格翻轉(0↔1),其上下左右四鄰格同時翻轉。求最少操作次數使全矩陣變為 0。多解輸出任意一個。
Android 上的 BeanShell HTML 解析器:無第三方庫抓取 CSDN 極客頭條
背景 Android 不支援標準 Java 字節碼,無法直接使用 Jsoup、HTMLParser 等庫。利用 BeanShell (bsh) 動態腳本語言特性