UVA 111 History Grading:最長公共子序列 (LCS) 解歷史事件排序
問題描述 給定 n (≤20) 個歷史事件的正確順序(1~n 的排列),以及多組學生的排序答案。按「最長公共子序列」長度評分:即學生答案中與正確順序**相對順序
HDU 4617 Weapon:圓柱體最小距離與相交判定的立體幾何解法
題目大意 N 個武器,每個由圓心 C、圓上兩點 P₁,P₂ 確定一圓柱(軸線垂直圓面)。判斷是否有兩圓柱相交(Lucky),否則輸出最小表面距離(保留兩位小數)
單鏈表就地反轉:一次遍歷 O(1) 空間實現
問題 給定單鏈表頭指針,要求只遍歷一次、原地反轉(不創建新節點、不使用遞歸棧),返回新頭指針。 算法思想:三指針迭代 維護三個指針: prev:已反轉部分的
POJ 3009 Curling 2.0:DFS 模擬冰球滑動求最少步數
題目大意 20×20 冰面網格,有障礙(1)、起點(2)、終點(3)。石球沿直線滑動直到撞牆/出界/進終點。撞牆時牆消失,球停在牆前一格,可重新投擲。最多 10
HDU 4598 Difference:二分染色判奇環 + 差分約束 SPFA 判負環
題目大意 給定 n 個變量 a₁..aₙ,|aᵢ| < T。對於邊 (u,v) ∈ E ⇔ |aᵤ - aᵥ| ≥ T;非邊 ⇔ |aᵤ - aᵥ| < T。判
找出字符串中首個只出現一次的字符:O(n) 陣列計數法
題目 輸入字符串,輸出第一個僅出現一次的字符。例:abaccdeff → b。 算法 建立大小 256 的 int cnt[256] = {0},統計每
POJ 1135 Domino Effect:SPFA + 邊枚舉求最後倒下的多米諾骨牌
題目大意 n 個關鍵骨牌(1~n),m 條邊(長度 l)。推倒 1 號骨牌,沿邊以均勻速度傳播。求最後倒下的時間與位置(關鍵骨牌或兩骨牌之間)。 解題思路
C++ 使用 TinyXML 解析 XML 完整教程
TinyXML 簡介 TinyXML 是一個輕量級、開源的 C++ XML 解析庫,僅包含 2 個頭文件和 4 個 cpp 文件,直接加入項目即可使用,無需額外
HDU 4288 Coder:線段樹維護模 5 循環和的動態集合
題目大意 動態集合支持三操作: add x:插入 x(保證不存在)。 del x:刪除 x(保證存在)。 sum:輸出集合中所有元素按升序排列後,
C++ 虛函數表深度探秘:多重繼承、指針轉換與私有虛函數調用
實驗代碼與現象 class BaseA { virtual void A1(); virtual void A2(); virtual void A3(); }
POJ 2400 最小權匹配:KM 算法求雙方最滿意配對
題目背景 n 名員工與 n 名主管雙向打分(1~n,越小越滿意)。求完美匹配使總不滿意度最小,輸出平均不滿意度。 關鍵建模 員工 i 對主管 j 的排名
面試必考:O(n) 時間 O(1) 空間統計數組元素出現次數
題目 給定長度 n 的數組 A,元素範圍 [0, n-1],有重複也有缺失。要求 O(n) 時間、O(1) 額外空間,統計每個數字出現次數(0 次即缺失)。
單鏈表實現多項式相乘:從降冂排列到高效合併同類項
問題描述 給定兩個多項式 A(x)、B(x),以單鏈表存儲(係數、指數、下一節點),要求計算 C(x) = A(x) × B(x) 並按指數降冂輸出。 數據結
POJ 3323 Matrix Power Series:矩陣快速冪求和的非遞歸實現
題目大意 給定 n×n 矩陣 A,求 S = A + A² + … + Aᵏ (mod m)。n ≤ 30, k ≤ 10⁹, m ≤ 10⁹。需輸出 S 的每
C++ Placement New 深度解析:在預分配記憶體中構建對象
什麼是 Placement New? 在 C++ 中,new 運算符通常負責兩件事:在堆上分配記憶體,並調用構造函數初始化對象。但有時我們已經有一塊現成的記憶體
正則表達式中括號匹配規則詳解:轉義與瀏覽器差異
核心結論 字符是否特殊字符匹配寫法備註 [ (左中括號)是\[ 或 [[]需轉義,建議用字符類 [[] ] (右中括號)否 (大多數引擎)] (直接寫)**不
iOS Core Animation:動畫組與轉場動畫完整指南
動畫組 CAAnimationGroup 允許將多個動畫組合在一起,同時添加到同一個 Layer 上,實現豐富的協同效果。其核心屬性是 animations(動
HDU 2871 Memory Control:伸展樹與線段樹實現區間管理
問題描述 內存大小 n (≤50000),支持四種操作: NEW x:分配最左邊連續 x 個空閒單元,輸出起始位置; FREE x:釋放第 x 次分配的區間;