POJ 3370 Halloween Treats 解題:抽屜原理與前綴和取模
題目大意 c 個孩子,n 個鄰居 (c ≤ n)。第 i 個鄰居給 a[i] 顆糖。選擇一個非空子集,使糖果總數能被 c 整除 (孩子們平分)。輸出選擇的鄰居編
C++11 新特性 (六):基於範圍的 for 迴圈詳解
語法 for (type &var : container) { /* ... */ } type:元素類型 (可用 auto 推導)。 &var:引用
HDU 4961 Boring Sum 高效解法:因數向量預處理
優化點 同 ID 208655,此處強調使用 vector divisors[MAXV] 預存每個數的所有因數,掃描時直接遍歷向量,避免重複開根號枚舉因數,常數
HDU 4968 Improving the GPA 解題:完整 DP 表法求極值 GPA
題目重述 同 ID 208658,此處給出另一種 DP 實作:直接對分數 60-100 建立映射表,雙層 DP 填表。 分數到 GPA 映射 double
HDU 1394 Minimum Inversion Number 解題:樹狀數組計算逆序數與循環移位
題目大意 給定 0..N-1 的一個排列。定義逆序數為 ia[j] 的對數。可進行循環左移 (首元素移至尾部)。求所有循環移位中的最小逆序數。 樹狀數組求初始
HDU 4968 Improving the GPA 解題:動態規劃求極值 GPA
題目大意 已知 N 門課平均分 avg (60-100),每門課學分 1。分數對應 4.0 制 GPA 映射表: 90-100: 4.0 85-89: 3.7
UVA 10256 The Great Divide 解題:兩個凸包分離性判斷
題目大意 給定兩組點集,判斷其凸包是否相離 (無交點、無包含)。若相離輸出 Yes,否則 No。 演算法步驟 分別計算兩組點的凸包 (CH1, CH2),使
HDU 4969 Just a Joke 解題:圓周追擊問題的積分解法
題目大意 女孩在以英雄為圓心、半徑 R 的圓上勻速運動 (速度 v1)。英雄從圓心出發速度 v2 追擊,且三點 (英雄、女孩、圓心) 始終共線。英雄腿疼只能跑距
HDU 4961 Boring Sum 解題:因數預處理與掃描線求倍數對
題目大意 序列 a[1..n]。定義: b[i] = a[f(i)],其中 f(i) = max{ j < i | a[j] % a[i] == 0 } (左
UVA 12338 Anti-Rhyme Pairs 解題:後綴陣列與 RMQ 求最長公共前綴
題目大意 給定 N 個字串,Q 次查詢,每次詢問兩字串的最長公共前綴 (LCP) 長度。 解法:後綴陣列 + RMQ 將所有字串用唯一分隔符 (如 $+i)
HDU 4965 Fast Matrix Calculation 解題:矩陣快速冪優化技巧
題目大意 給定 n×m 矩陣 A 和 m×n 矩陣 B (元素模 6)。計算 (A * B)^{n*n} 的所有元素和 (模 6)。直接相乘複雜度極高。 關鍵
HDU 4960 Another OCD Patient 解題詳解:記憶化 DFS 與前綴和優化
題目重述 同 ID 208651,此處提供另一種等價的記憶化 DFS 寫法,強調前綴和單調性帶來的雙指標加速。 狀態定義 dfs(l, r) 返回區間 [l,
HDU 4960 Another OCD Patient 解題:記憶化搜索與雙指標優化
題目大意 長度 n 正整數序列。可將連續子段合併為其和 (代價為合併後長度對應的 cost[len])。目標將序列變為迴文 (正讀反讀相同),每個數字只能被合併
HDU 1879 繼續暢通工程 解題:最小生成樹與已建道路整合
題目大意 N 個村莊,給定所有配對的道路建設成本與是否已建 (1/0)。求使所有村莊連通的最小新建成本。 解法:Kruskal + 並查集 將所有邊讀入,已
HDU 4964 Emmet 解題:HTML 縮寫遞歸展開
題目大意 實作 Emmet 縮寫語法解析器,支援: 巢狀標籤:span ID:#id、Class:.class (可多個,順序保持) 分組:(...) 表示同
LA 4728 Square 解題:多邊形頂點最大距離平方
題目大意 給定多個正方形 (中心座標、邊長、旋轉角度),求所有正方形頂點之間的最大距離平方。 解法 計算每個正方形的 4 個頂點座標 (旋轉變換)。 將所有
POJ 2187 Beauty Contest 解題:旋轉卡殼法求凸包直徑平方
題目大意 給定平面上 N 個點,求凸包上最遠點對的距離平方。 演算法步驟 求凸包:Andrew 算法 (單調鏈) O(N log N),得到逆時針頂點序列
C++ 設計模式:建造者模式 (三) — 引入鉤子方法精細控制建造流程
鉤子方法 在抽象建造者中定義 IsBuildX() 系列虛擬函數 (預設返回 true),具體建造者覆寫返回 false 以跳過該部件建造。指揮者在 Const