HDU 3694 - 四邊形費馬點:凸/凹判斷與對角線交點
幾何性質:四點費馬點的分類討論 給定無序四點,求 Σ dist(P, P_i) 最小值。僅四點時可利用幾何性質直接求解,無需迭代: 凸四邊形:四點凸包為四
POJ 2420 - 費馬點問題:模擬退火 / 山峰爬升求幾何中位數
問題定義 給定平面上 n (n ≤ 100) 個點,尋找一點 P 使 Σ dist(P, P_i) 最小。此點稱為費馬點(或幾何中位數)。對於三角形,若所有內角
POJ 1364 - 差分約束系統與 SPFA 判負環
問題建模:從嚴格不等式到差分約束 題目給出形如 c 或 < c 的條件,其中 S[i] 為前綴和。差分約束標準形式要求 ≥ 或 ≤。利用變量為整數的性質
UVA 10392 - Factoring Large Numbers:大數分解的巧妙優化
題目條件與關鍵觀察 輸入為 64 位有號整數 N (|N| ≤ 2^63-1),需輸出其所有質因數(含重複)。關鍵提示:最多只有一個質因數大於 1,000,00
POJ 2480 Longge's Problem:歐拉函數與約數枚舉解法詳解
問題重述 給定整數 n (1 ≤ n ≤ 10^9),求 S(n) = Σ_{i=1}^{n} gcd(i, n)。多組測試資料,以 EOF 結束。 數學推導
在 C++ 中嘗試函數式風格:從宏到現代語法的演進
緣起:厭倦了重複的迴圈樣板代碼 身為 C++ 開發者,長期面對 STL 容器遍歷的固定模式: for (Container::iterator it = c.b
並查集基礎應用:解決「The Suspects」問題
問題背景與核心思路 「The Suspects」是一道經典的並查集(Disjoint Set Union, DSU)入門題目。題目給出若干群組,每個群組內的成員
C++ Boost 庫核心組件導覽:準標準庫的實用擴展
Boost 定位 Boost 是 C++ 準標準庫,設計理念繼承 STL(泛型、復用最大化),但更側重工程實用性:STL 專注算法/容器,Boost 提供大量開
Linux C++ 程序文件句柄耗盡問題排查與解決方案
故障現象 服務運行 ~3 週後出現: 日志文件創建失敗 cURL 訪問後端 HTTP 服務失敗 重啟程序即恢復 根因分析 懷疑後端服務故障 → 命令行
Codeforces 180E Cubes:後綴指針優化的滑動窗口最大連續顏色段
問題描述 長度 n ≤ 2×10⁵ 的顏色序列(顏色數 m ≤ 10⁵),可刪除至多 k 個立方體,求剩餘序列中 同色連續段的最大長度。 核心觀察 對固定顏色
C 語言 rename 與 remove 函數詳解:文件重命名、移動與刪除
rename 函數 #include <stdio.h> int rename(const char *oldpath, const char *
HDU 2063 過山車:匈牙利算法求最大二分匹配
問題建模 女生 N ≤ 500,男生 M ≤ 500,K ≤ 1000 條「願意配對」關係。求最大匹配對數,即最大二分匹配。 匈牙利算法(DFS 增廣路) 核
POJ 2418 二叉查找樹統計詞頻:C++ 實現與輸出格式化
問題描述 讀入多行文字(每行一個單詞),統計每個單詞出現次數,按字典序輸出單詞及其出現百分比(保留 4 位小數)。輸入以空行結束。 資料結構選擇:二叉查找樹
POJ 1410 線段與矩形相交:轉化為直線與線段相交判定
問題轉化 判斷線段是否與矩形(含邊界、內部)相交。關鍵洞察:先判斷線段所在 無限直線 是否與矩形四邊相交;若相交,再檢查線段本身是否落在矩形範圍內。這避免了直接
POJ 3264 Balanced Lineup:線段樹區間最值查詢
問題描述 N ≤ 50,000 頭奶牛排成一排,Q ≤ 200,000 次詢問區間 [A,B] 內最高與最矮奶牛的高度差。單點無更新,靜態區間最值查詢。 線段
KMP 算法入門:Power Strings 週期子串檢測
問題描述 給定字符串 s,求最大整數 k 使 s = t^k(t 重複 k 次)。例如 ababab → 3,abcdef → 1。輸入以單獨 . 結束。 K
Codeforces Round #131 Div.2 完整題解:A-E 五題詳細分析
A. System of Equations 求非負整數對 (a,b) 滿足 a²+b=n, a+b²=m。n,m ≤ 1000,暴力雙循環 0..1000 即
POJ 3625 Building Roads:坐標型最小生成樹與預連通邊處理
問題描述 給定 n (≤1000) 個點座標及 m 條已建道路(權值 0),求連通所有點的最小總長度。輸出保留兩位小數。 建模與算法 完全圖,邊權為歐氏距離