UVA 1292 Strategic Game:樹形 DP 求最小頂點覆蓋
題目大意 給一棵無根樹(n ≤ 1500),選擇最少節點使得**每條邊至少有一個端點被選中**(最小頂點覆蓋)。多組測資,0 0 結束。 樹形 DP 狀態定義
NY OJ 1099 Lan Xiang's Square:四點構成正方形判定(距離平方避免精度損失)
題目大意 給定平面上四個整數座標點(座標絕對值 ≤ 10⁸),判斷能否構成正方形。最多 10⁵ 組測資。 幾何判定條件 四邊等長且一角為 90° ⇔ 正方形。
Linux C 多線程 Socket 服務器完整實現(pthread + 非阻塞回顯)
功能需求 主線程 accept 新連線,印出客戶端 IP:Port。 為每個連線建立獨立執行緒處理收發。 服務端收到資料後,印出「客戶端 IP + 內容」,並
第四屆 CCF 軟件能力認證前四題詳細題解(201503-1~4)
整體評價 本次認證前四題難度較前三屆降低,屬於簽到與基礎算法題。以下為逐題分析與 AC 代碼。 201503-1 圖像旋轉(矩陣逆時針 90°) 思路:新矩陣
ACdream 1738 世風日下的嘩啦啦族 I:線段樹套平衡樹(SBT / 紅黑樹)
題目大意 維護長度 N(≤ 50,000)的序列,支援三種操作(共 M ≤ 50,000 次): 1 pos val:單點修改 a[pos] = val。 2
C++ dynamic_cast 指針轉換實戰:多態類型運行期識別
題目背景 基類 Shape 派生 Triangle、Rectangle。實作 getVertexCount(Shape*):若指向 Shape 回傳 0,Tri
HDU 1285 拓撲排序:字典序最小的合法序列(優先隊列 + BFS)
題目大意 給定 n 個節點、m 條有向邊,求拓撲排序。若有多解,輸出**字典序最小**者(即每步優先選編號最小的入度為 0 的節點)。 正確解法:Kahn 算
C++ 單繼承下的虛表佈局與多態調用機制深度解析
多態調用的兩大核心問題 當透過基類指標 ptr 呼叫虛函數 get_c() 時,執行期必須確定: ptr 指向物件的真實類型(以選擇正確的函數實體)。 該函數
UVA 10054 The Necklace:歐拉回路構造與 Hierholzer 算法
題目重述 給定 N(5 ≤ N ≤ 1000)顆珠子,每顆有兩個顏色(1~50)。判斷能否用所有珠子串成一條項鍊,使相鄰珠子共享顏色,且首尾顏色也相同。若可行,
POJ 3264 Balanced Lineup:區間最大最小值差查詢(線段樹)
題目大意 Farmer John 有 N(≤ 50,000)頭牛排成一列,每頭牛有高度。給出 Q(≤ 200,000)個詢問,每詢問一個區間 [A, B],需輸
C++ 中以 const、enum、inline 取代 #define 的最佳實踐
為什麼要替換 #define? 在 C++ 開發中,預處理指令 #define 雖然方便,但存在兩大缺陷: 符號不進入編譯器符號表:#define 在預處理階
HDU 1558 Segment Set:並查集維護線段連通性
HDU 1558 Segment Set:並查集維護線段連通性 動態添加線段,查詢兩線段是否連通(直接相交或經其他線段間接相交)。線段端點坐標為雙精度浮點數,判
C++ BMP 圖像讀寫全流程:Windows GDI 直接操作像素
C++ BMP 圖像讀寫全流程:Windows GDI 直接操作像素 無第三方庫依賴,純 Windows API + 標準 C 文件操作實現 BMP 讀取、顯示
HDOJ 1285 拓撲排序:確定比賽名次的正確遞歸邏輯
HDOJ 1285 拓撲排序:確定比賽名次的正確遞歸邏輯 給定 n 個選手(n ≤ 500)和 m 條比賽結果(A 勝 B),輸出排名序列。排名規則:若 A 勝
HDU 2082 母函數求詞彙數:生成函數與多項式乘法
HDU 2082 母函數求詞彙數:生成函數與多項式乘法 給定 26 個字母各自的可用數量 x₁..x₂₆,字母價值為其序號(A=1, B=2, ..., Z=2
UVALive 6439 Pasti Pas!:字符串雙向哈希求最長回文覆蓋
UVALive 6439 Pasti Pas!:字符串雙向哈希求最長回文覆蓋 求字符串能分解為最多回文塊的數量。策略:雙指針從兩端向中間,用滾動哈希實時比較前綴