HDU 1799 循環多少次?:組合數學與楊輝三角的經典應用
問題描述 m 層嵌套循環,第 1 層變量從 1 到 n,第 i 層從上一層變量+1 到 n。求最內層 OP 執行次數。m, n ≤ 2000,結果模 1007。
UVA 1471 Defense Lines:刪除子段後最長上升子序列的集合優化
問題描述 給定長度 n (≤ 200,000) 的序列,刪除一段連續子序列,使剩餘兩段拼接後的最長連續上升子序列(LCIS)長度最大。輸出該最大長度。 預處理
UVA 11134 Fabled Rooks:二維棋子放置拆解為一維貪心區間調度
問題描述 N×N 棋盤,需放置 N 個車(Rook),互不攻擊(即每行每列最多一個)。每個車有限制區域:左上角 (x1,y1) 到右下角 (x2,y2)。求任意
HDU 1859 最小長方形:極值統計的入門級幾何問題
問題描述 給定多組二維平面點坐標 (x, y),|x|,|y| < 2^31。每組以 (0,0) 結束(不計入點集),整個輸入以空點集 (0,0) 結束。求包含
LeetCode 200 Number of Islands:DFS/BFS 檢測連通分量經典題
問題描述 給定 m×n 的二維網格,1 代表陸地,0 代表水。島嶼是被水包裹、且水平/垂直方向相連的陸地。求島嶼數量。四邊假設被水包圍。 核心思路:洪水填充
UVA 10617 Again Palindrome:區間 DP 計數回文子序列
問題描述 給定字符串,可刪除任意字符(也可不刪),求有多少種方式使剩餘字符形成回文串。空串不算回文。結果可能很大,需用 64 位整數。 DP 狀態定義 dp[
POJ 2478 Farey Sequence:歐拉函數前綴和求真分數個數
問題描述 Farey 序列 F_n 定義為:所有分母 ≤ n、分子分母互質的真分數 a/b (0 < a < b ≤ n),按值升序排列。求 F_n 中項數 N
LeetCode 199 Binary Tree Right Side View:層序遍歷取最右節點
問題描述 給定一棵二叉樹,站在樹的右側看,返回從上到下可見的節點值。例如: 1 ← / \ 2 3
HDU 1358 Period:KMP Next 數組求字符串周期的經典應用
問題描述 1)。周期串定義:存在子串 A,使得前綴 = A^K (A 重複 K 次)。 KMP Next 數組核心性質 next[i] 表示前綴 S[0..
LeetCode 191 Number of 1 Bits:漢明重量的多種高效算法
問題描述 給定一個 32 位無符號整數,返回其二進制表示中 1 的個數(即漢明重量)。例如 11 (0b1011) 返回 3。 算法演進:從基礎到極致優化
ZOJ 3623 Battle Ships:完全背包變體求最短摧毀時間
問題重述 有 N 種戰艦(N ≤ 30),防禦塔血量 L(L ≤ 330)。第 i 種戰艦: 生產時間 t_i(1~20 秒) 每秒傷害 l_i(1~330)
HDU 2795 Billboard:線段樹維護廣告牌剩餘寬度的經典應用
問題建模 有一塊高 h、寬 w 的廣告牌(h, w ≤ 10^9)。依次放入 n 張寬度為 w_i 的單位高度廣告(n ≤ 200,000)。放置規則: 優先
C++ 內存分配與對象構造分離:allocator 與 placement new 深度解析
為什麼要分離分配與構造? 標準 new 表達式會同時完成兩件事: 調用 operator new 分配原始內存 調用構造函數初始化對象 這在以下場景下效率低
優化篩法求素數:基於 6k±1 規律的 C++ 高效實現
數學基礎:素數與 6 的關係 除 2 和 3 以外,所有素數都分布在 6 的倍數兩側,即形式為 6k-1 或 6k+1(k ≥ 1)。這是因為: 6k, 6k
C++ 友元函數深度解析:跨類訪問私有成員的正確姿勢
友元函數核心概念 友元函數是 C++ 中打破類封裝性的特殊機制。它允許非成員函數訪問類的 private 和 protected 成員。關鍵特性: 在類內部用
UVA 11988 Broken Keyboard (Beiju Text) 解題詳解與鏈表實現
題目背景 這是一道經典的字符串處理問題,來自 UVA 11988。場景是:你在使用一個壞掉的鍵盤打字,Home 鍵和 End 鍵會被隨機觸發。[ 代表 Home
C++ 派生類構造與析構順序:基類優先構造、派生類優先析構
核心規則 構造順序:基類 → 成員對象(按聲明順序) → 派生類自身 析構順序:完全相反,派生類 → 成員對象(逆聲明順序) → 基類 代碼演示 #inc