HDU Bombing:STL map + multiset 高效實現坐標動態刪除統計
題目大意 給定 n 個點座標 (x, y),處理 m 個操作: - c=0, d:查詢並刪除所有 x == d 的點,輸出刪除數量。 - c=1, d:查詢並刪
ACM 經典 1016 Prime Ring Problem:DFS 回溯構造素數環
問題描述 將 1~n(n < 20,偶數)排成一環,相鄰兩數之和為素數,且首位固定為 1。按字典序輸出所有方案。 算法分析 狀態空間:n ≤ 16(偶數),
ZOJ 3669 Japanese Mahjong I:聽牌判定(十三張牌求待ち牌種類數)
題目大意 給定 13 張牌(合法手牌,無重複超 4 張),判斷屬於**聽牌**狀態時,摸哪些牌能和牌(形成標準和牌型:4 副露 + 1 雀頭)。輸出待ち牌種類數
HDU 1431 素數回文:篩法預計算 + 回文判定 + 區間查詢
題目大意 多組測試數據,每組給定區間 [a, b](5 ≤ a < b ≤ 100,000,000),輸出區間內所有**既是素數又是回文數**的整數,每組輸出後
ZOJ 3671 Japanese Mahjong III:七對子與十三幺判定算法詳解
題目背景 日式麻將 136 張牌: - **數牌(順子牌)**:萬(萬/字)、筒(筒/圈)、索(索/條) 三門,各 1-9 四張,共 108 張。 - **字牌
POJ 2104 K-th Number:主席樹(可持久化線段樹)完整教程與模板
問題描述 給定長度 n ≤ 100,000 的互不相同整數數組,回答 m ≤ 5,000 個查詢:區間 [l, r] 中第 k 小的數是多少? 核心思路:主席
ZOJ 3675 Trim the Nails:指甲刀修剪最小次數 DFS + 剪枝
問題建模 指甲寬度 M ≤ 20 毫米,初始全未剪(0)。 指甲刀寬度 N ≤ 10,邊緣由 *(好)和 .(壞)組成,如 **..**。 可翻轉指甲刀(鏡像
LeetCode 熱題 100:Permutation Sequence(第 k 個排列)數學構造法詳解
題目大意 給定 n(1 ≤ n ≤ 9)和 k(1 ≤ k ≤ n!),返回 {1,2,...,n} 的所有全排列中第 k 個(按字典序)。要求時間複雜度優於
HDU 3920 Clear All of Them I:狀態壓縮 DP 求激光最小路徑能量
問題重述 固定位置 (x, y) 發射激光,需消滅 2n 個敵人(n ≤ 10)。每次發射**必須反射一次**,即依次擊中兩個不同敵人,能量消耗為兩段路徑長度之
C++ 結構體動態內存管理與文件持久化完整實戰教程
專案背景 本教程演示如何在 C++ 中設計包含動態成員(字符串、字符串陣列)的結構體,實現完整的**內存申請、數據輸入、文件寫入、鍵值讀取、內存釋放**全生命周
C++ 函數指針進階:類型轉換、多態調用與實戰模式
前言 函數指針是 C/C++ 實現回調、策略模式、插件架構的核心機制。但在 C++ 中涉及類繼承、靜態成員函數、成員函數指針時,類型系統的嚴格性常導致編譯錯誤或
Release 模式下 strcpy 導致程式崩潰的深度剖析與安全替代方案
事故現場 專案中使用 strcpy 複製字符串至固定大小緩衝區,再將緩衝區地址作為 WPARAM 透過 PostMessage 跨線程傳遞: char pStr
Linux C 語言文件 IO:open/fopen、read/fread、write/fwrite 核心差異與選型指南
兩大體系對比 維度標準 C 庫(fopen 系)POSIX 系統呼叫(open 系) 標準ISO C(ANSI C)POSIX.1(UNIX/Linux) 可
深度解析:源文件移動後 GDB 無法顯示代碼的根本原因與解決方案
現象複現 編譯帶調試資訊的程式: gcc main.c -o main -g 將源文件移動: mv main.c src/main.c 啟動 GDB 調試: g
Ubuntu 系統下 Boost C++ 庫的兩種安裝與配置全攻略
前言 Boost 是 C++ 準標準庫的重要補充,提供了智能指針、正則表達式、多線程、文件系統等眾多高質量組件。在 Ubuntu 12.04 等舊版本系統上配置
圖論經典算法:Prim 算法求最小生成鵠(鄰接表 + STL 優先隊列實現)
前言 最小生成樹(Minimum Spanning Tree,MST)是圖論中的核心問題,廣泛應用於網路設計、叢類分析、電路佈線等領域。Prim 算法作為求解
Ubuntu 系統下 GCC 編譯器的完整安裝與基礎使用指南
前言 在 Ubuntu Linux 系統上進行 C/C++ 開發,首要任務便是安裝 GCC (GNU Compiler Collection) 編譯器套件。與其
Prim 算法求最小生成樹:C++ 鄰接矩陣完整實現與圖解
算法原理 Prim 算法以貪心策略構建最小生成樹 (MST): 維護兩個集合:U(已在 MST 中的頂點)、T(MST 的邊); 初始 U={任意起點},T=