HDU 5119 Happy Matt Friends:XOR 子集計數 DP(滾動數組優化)
問題描述 給定 n≤50 個數 a_i (≤2^20) m。多測試用例。 DP 狀態定義 dp[i][x] = 前 i 個數中,異或和為 x 的子集數。 轉移
Java Class.forName().newInstance() vs new:反射實例化與直接實例化的區別與選擇指南
代碼示例 public class Demo { public Demo() { System.out.println(Constructor);
UVa 294 Divisors:區間內最大約數個數(質因數分解 + 篩法)
問題描述 多組查詢,每組給定 [a,b] (1≤a≤b≤1e9, b-a≤1e4? 實際無明確限制但需高效),找區間內約數個數最多的數(若多個取最小),輸出該數
UVa 10622 Perfect Powers:對數檢測整數冪指數最大值
問題描述 給定整數 n (|n| ≤ 2^31-1),找到最大整數 k ≥ 1 使得存在整數 b 滿足 b^k = n。負數 n 僅當 k 為奇數時可能有解。
HDU 1151 Air Raid:最小路徑覆蓋 = |V| - 最大匹配(DAG 空襲路徑規劃)
問題描述 有向無環圖 (DAG) 表示城市道路。飛機從起點飛到終點,每條路徑可覆蓋沿途城市。求最少飛機數覆蓋所有城市(每城市至少被一條路徑經過)。 最小路徑覆
HDU 1150 Machine Schedule:二分圖最小點覆蓋 = 最大匹配(機器模式切換最小化)
問題建模 兩台機器 A、B,N 個任務。任務 i 在 A 需模式 x_i,在 B 需模式 y_i。機器切換模式需重啟(代價 1)。任務在機器上順序任意。安排每個
LeetCode 2 Add Two Numbers:鏈表逐位相加進位處理完整遞歸/迭代實現
問題描述 兩個非空鏈表表示非負整數,**逆序存儲**(個位在頭)。逐位相加,返回和鏈表(亦逆序)。如 (2→4→3) + (5→6→4) = 7→0→8(342
Codeforces 235C Cyclical Quest:後綴自動機解決循環同構子串查詢
問題重述 給定文本串 S (|S|≤1e6),Q≤1e5 查詢串 x_i (∑|x_i|≤1e6)。 查詢:S 中有多少個**連續子串**與 x_i **循環同
CSU 1661 Query Mutiple:質因數分解 + 離線查詢區間倍數個數
問題描述 數組 a[1..n] (n≤1e5, a_i≤1e6),q≤1e5 查詢:區間 [L,R] 中有多少個數是質數 P (P≤1e6) 的倍數。 核心思
CSU 1660 K:圖中長度為 K 的簡單環檢測(K≤7 窮舉搜索)
問題描述 無向圖 N≤50, M≤500,查詢是否存在長度恰好為 K (3≤K≤7) 的簡單環(頂點不重複,首尾相連)。 DFS 回溯搜索 K ≤ 7 很小,
CSU 1664 防水堤壩:周長固定求最大面積的數學規律
問題描述 用 K 條邊圍成多邊形,邊要么是軸向單位長度 1,要么是 45° 斜邊長度 √2。頂點在整點。求最大面積(保留一位小數)。3 ≤ K ≤ 2e9。
CSU 1656 Paper of FlyBrother:後綴數組求不同子串個數
問題轉化 字符串長度 n ≤ 1e5。不同子串總數 = 所有後綴長度之和 − 相鄰後綴 LCP 之和。 即 ans = n(n+1)/2 - ∑_{i=1}^{
POJ 2751 雙機調度 Johnson 算法:貪心策略最小化完工時間
問題描述 兩台機器 M1, M2,n 個任務。任務 i 必須先在 M1 處理 t1_i 時間,再在 M2 處理 t2_i 時間。任務順序可任意調換。求最小總完工
CSU 1659 Graph Center 另解:Floyd-Warshall 全對最短路求圖中心
Floyd-Warshall 適用性 N ≤ 100,O(N³) = 1e6 操作,極適合 Floyd 算法。代碼比 SPFA 更短,無需佇列,常數小。 核心
HDU 2952 Counting Sheep:DFS 連通分量計數經典入門
問題描述 n×m 網格,* 代表羊,. 代表空地。羊群定義為上下左右相連的 * 區域。求羊群數量。多測試用例。 DFS 洪水填充 int n, m; ch
CSU 1659 Graph Center:SPFA 多源最短路求圖中心點
問題定義 圖的**中心** = 離心率最小的頂點集合。離心率 ecc(v) = max_u dist(v,u)。圖半徑 r = min_v ecc(v)。中心點
Effective C++ 條款 11:在 operator= 中處理自我賦值
什麼是自我賦值 a = a、*p = *p、v[i] = v[j] (i==j) 等。若 operator= 內部先 delete 再 new,會導致釋放後再訪