HDU 3518 Boring Counting:後綴數組 + 枚舉長度統計子串出現次數
題目大意 給字符串 s (長 n ≤ 1000),求有多少**不同的非空子串**在 s 中**至少出現兩次**(不重疊?題目為「至少兩次」,允許重疊)。輸出滿足
BZOJ 3916 Baltic 2014 friends:Hash + 枚舉刪除位置還原原串
題目大意 給長度為奇數的字符串 S (|S| = 2n+1),已知 S 由某字符串 T (|T| = n) 重複兩次後,在**任意一位置**插入一個字符得到。求
HDU 4352 XHXJ's LIS:數位 DP 求區間內 LIS 長度為 K 的數個數
題目大意 查詢區間 [L, R] 中,有多少整數的「自身十進制數字序列的最長上升子序列 (LIS) 長度」等於 K。多測試案例,L, R ≤ 10¹⁸(約 18
UVa 10069 Distinct Subsequences:DP + 大整數計數子序列
題目大意 給字符串 A (長 n ≤ 10000) 和 B (長 m ≤ 100),求 A 中有多少個**子序列**(不必連續)等於 B。答案可能極大,需大整數
Counterfeit Dollar (UVa 1012):天平推理找假幣
題目大意 12 枚硬幣 A~L,一枚假幣(輕或重)。3 次天平稱量,每次給出左右盤硬幣集合及結果:`up`(右輕)、`down`(右重)、`even`(平衡)。
POJ 2236 & 1611:並查集經典應用兩則
POJ 2236 Wireless Network:動態加點連通性查詢 題意 N (≤ 1000) 台電腦,坐標已知,通訊距離 ≤ d。初始均故障。操作: `O
NYOJ Yougth的最大化:二分答案 + 貪心選擇解分數規劃
題目大意 n (≤ 10000) 個物品,重量 W[i]、價值 V[i]。選**恰好 k** 個物品,使**單位重量價值** (ΣV / ΣW) 最大。輸出最大
POJ 2159 Ancient Cipher:替換+置換密文判斷
題目大意 給兩個等長大寫字符串 S1(密文)、S2(疑似明文)。判斷 S1 是否可由 S2 經過**任意替換密碼**(單表替換,字母一對一映射)再經**任意置換
CSU 1216 最大異或值:Trie 樹貪心查找 O(n) 解法
問題描述 給定 n(≤10⁵)個 32 位非負整數,求任意兩數異或的最大值。 Trie 樹核心思想 從高位到低位(31→0)將所有數插入二進制 Trie。查詢
UVA 11992 二維線段樹:矩陣區間加/賦值/查詢和/最大/最小
問題描述 R 行 C 列矩陣(R,C ≤ 50000?實際 R≤20,C≤50000),初始全 0。三種操作: 區間加:子矩陣 [x1,x2]×[y1,y2]
LeetCode 54/59 Spiral Matrix I/II:螺旋矩陣遍歷與生成
Spiral Matrix I:螺旋順序輸出矩陣元素 題目 給定 m×n 矩陣,按順時針螺旋順序返回所有元素。例:[[1,2,3],[4,5,6],[7,8,9
HDU 4288:離線處理 + 線段樹維護下標模 5 和查詢
題目大意 動態集合支持三操作:add x 插入、del x 刪除、sum 查詢。查詢定義:將集合元素升序排列 a1 < a2 < ... < ak,求下標模 5
ZOJ 3706 Break Standard Weight:模擬枚舉求最大可稱重量種類數
題目大意 有兩個標準砝碼(質量為整數),可將其中一個敲碎成兩塊(質量和不變,均為整數)。三塊砝碼可放天平左右兩邊,求最多能稱出多少種不同重量(不含 0)。 解
UVA 10739 String to Palindrome:編輯距離動態規劃求最少操作數
題目大意 給定字符串,允許三種操作:插入、刪除、替換(每操作代價 1)。求將其變為回文字符串的最少操作數。長度 ≤ 1000。 動態規劃模型 狀態定義 dp[
POJ 1845 Sumdiv:算術基本定理求因子和模質數
問題描述 給定 n, m,求 S = σ(nᵐ) mod 9901,其中 σ 為因子和函數。n, m ≤ 10⁹,多測試用例。 數學基礎 若 n = Π pᵢ
C++ 教程第二章:基本內置類型、類型轉換、字面值、變量初始化與作用域
1. 基本內置類型 算術類型:字符 char、整型 int/short/long、布爾 bool、浮點 float/double。 無符號類型:unsigne
POJ 3014 Cake Pieces and Plates:整數拆分動態規劃
題目大意 將整數 m 拆分為 n 個非負整數之和(允許 0),求拆分方案數模 1e9+7。n, m ≤ 4500。 動態規劃建模 狀態定義 h(m, n):將