POJ 1135 Domino Effect:多米諾骨牌倒塌時間 Dijkstra 算法應用
問題描述 給定無向圖,邊權為傳播時間。從節點 1 觸發,沿邊傳播。求最後一塊骨牌倒塌的時間及位置(可能在節點上,或兩節點之間的邊上)。 算法思路 從節點 1
POJ 1071 Illusive Chase:機器人追逐軌跡逆推起始位置 DFS 解法
問題描述 m×n 網格,0 為空地,1 為障礙。機器人從某起點出發,經歷若干次「追逐行程」:每次給定步數範圍 [a,b] 和方向(U/D/L/R),機器人在該方
POJ 1101 The Game:連連看規則下的最少拐彎路徑 BFS 解法
問題描述 給定 w×h 棋盤,部分格子有棋子。判斷兩個棋子能否通過「水平/垂直線段組成、不穿過其他棋子、允許暫時離開棋盤」的路徑連接。若可連接,輸出最少線段數(
迭代器模式詳解:封裝遍歷邏輯,分離集合與算法
模式定義 迭代器模式提供一種方法順序訪問聚合對象中的各個元素,而又不暴露該對象的內部表示。 適用場景 需要以不同方式遍歷集合(正序、逆序、過濾等) 希望統一
組合模式詳解:樹形結構統一處理單個對象與組合對象
模式定義 組合模式將對象組合成樹形結構以表示「部分-整體」層次關係,使得客戶端代碼對單個對象(葉子)和組合對象(容器)的使用具有一致性。 適用場景 需要表示
POJ 2046 Gap 紙牌遊戲:BFS + 狀態壓縮 + Hash 去重完整解法
問題描述 28 張牌(花色 1-4,點數 1-7)初始佈局為 4 行 7 列,最左列空位。移走所有點數為 1 的牌放到最左列對應花色行。然後進行移動:選一個空位
C++ 虛函數底層機制深度解析:vptr、vtable 與多態實現
虛函數表(vtable)與指針(vptr) C++ 多態通過虛函數表實現。每個包含虛函數的類,編譯器生成一個靜態數組(vtable),存儲該類虛函數的地址。每個
城市間最短距離問題:最小生成樹與最短路徑雙算法實戰
問題一:最短總距離(最小生成樹) 模型 城市 = 頂點,道路 = 邊,距離 = 權重。求連接所有城市且總長度最小的方案 → 最小生成樹(MST)。 Prim
堆排序完全指南:最大堆構建、調整與排序過程圖解
堆排序概述 堆排序是利用二叉堆(完全二叉樹)特性實現的原地排序算法,時間複雜度 O(n log n),空間複雜度 O(1)。本文基於《算法導論》講解最大堆版本。
POJ 1459 電力網絡:最大流 EK 算法模板題詳解
問題描述 給定一個電力網絡,包含發電廠(源點)、用戶(匯點)、傳輸線(有向邊,有容量)。可建立超級源點連接所有發電廠,超級匯點連接所有用戶。求從超級源點到超級匯
C++ 指針與引用深度解析:從語法到編譯原理
核心概念區別 特性指針引用 本質存儲地址的獨立變量變量的別名,無獨立存儲 初始化可延遲,可為 nullptr必須在定義時初始化,不可為空 重新綁定可隨時修改指
矩形面積並問題:掃描線 + 線段樹 + 離散化完整解法
問題描述 給定 n 個矩形(邊平行於坐標軸),求它們覆蓋的總面積。矩形可能重疊,重疊區域只計算一次。即 POJ 1151 / HDU 1542「亞特蘭蒂斯」問題
C++ 模板元編程:將任意類型映射為唯一整數
問題引入 在模板元編程中,常需要為每個類型在編譯期分配一個唯一的整數標識(如實現類型列表、變體、反射等)。C++ 標準庫無直接支持,但可利用模板特化與遞歸繼承實
C++ 集成有道與百度翻譯 API 打造多功能翻譯助手
背景 在桌面應用或開發工具中集成翻譯功能,可大幅提升查閱文檔、編寫代碼註釋的效率。國內主流免費翻譯接口以有道翻譯(網易)和百度翻譯最為成熟,兩者互補性強。 兩
C++ 使用 std::vector 作為 UDP 通信緩衝區的完整指南
為什麼選擇 vector? 在網絡編程中,發送/接收緩衝區大小往往在運行時才能確定。std::vector<char> 提供動態內存管理、連續內存佈
simpleCut:免費高效的 C++ 一維下料優化軟件
什麼是下料優化? 在製造業中,將原材料(如鋼材、木材、管材)切割成所需長度的過程稱為「下料」。合理的下料方案能顯著降低廢料率、節約成本。這屬於經典的一維切割庫存
C++ 並行計算庫 TBB 與 PPL 深度對比與實戰指南
前言 隨著多核處理器普及,並行計算成為提升程序性能的關鍵。C++ 領域有兩大主流並行庫:Intel 開源的 TBB (Threading Building Bl
C++ Primer 第 4 版中文版 PDF 下載鏈接
經典 C++ 入門教材 C++ Primer(第 4 版) 是公認的 C++ 語言學習「聖經」之一,由 Stanley B. Lippman、Josée Laj