C++ 進階陷阱指南(二):控制語句、函數返回值與重載解析
前言 程式語言的設計細節若不符合開發者直覺,便會形成「陷阱」。C++ 作為一門強大但複雜的語言,陷阱自然不少。本文延續《C++ 中的陷阱(一)》,深入探討控制語
C++11 Chrono 庫深度解析:日期時間處理的現代利器
前言 C++11 引入的 <chrono> 庫為 C++ 提供了標準化、類型安全的時間處理機制,徹底改變了以往依賴 C 風格 <ctime&g
HDU 1286 尋找新朋友:歐拉函數應用詳解
問題背景 HDU 1286 尋找新朋友 是一道經典的數論題目,核心考察歐拉函數(Eulers Totient Function)的性質與計算。題目要求:給定整數
ZOJ 1602 乘法拼圖:矩陣鏈乘法的動態規劃解法
問題描述 給定一排卡片,每張卡片上有一個數字。每次操作可以拿走任意一張非首尾的卡片,拿走第 i 張卡片時,得分增加 card[i-1] * card[i] *
SGU 194 無源匯上下界可行流:下界流量轉換 + 最大流檢查
問題:帶上下界的無源匯可行流 給定有向圖,每條邊 (u,v) 流量約束 l ≤ f ≤ r。無指定源匯,判斷是否存在滿足所有邊約束的流,存在則輸出每條邊流量。
HDOJ 4283 You Are the One:區間 DP 最小化不開心值
問題建模 n 個男生排隊(n ≤ 100),每人有「屌絲值」Dᵢ。導演可用一個「暗室」(棧)暫存男生:先進後出。第 k 個上台者不開心值 = (k-1) * D
劍指 Offer Q25:二叉樹中和為給定值的路徑(前序遍歷+回溯)
問題 輸入二叉樹根節點與整數 target,打印所有從根到葉子節點路徑上節點值之和等於 target 的路徑。 算法:前序遍歷 + 路徑記錄 遞歸參數:當前
POJ 3067 Japan:樹狀數組求逆序對(待補完整內容)
題目鏈接 https://poj.org/problem?id=3067 題目大意 給定序列,詢問區間內逆序對數量,或類似樹狀數組應用問題。原文內容缺失,此處
POJ 3176 Cow Bowling:數字三角形最大路徑和(自底向上 DP)
問題 n 行數字三角形(n ≤ 350),從頂點出發,每步只能向左下或右下移動,求到底邊的最大路徑和。 DP 狀態與轉移 dp[i][j]:從 (i,j)
POJ 1002 487-3279:電話號碼映射與重複計數
題目大意 輸入 n 個電話號碼(含字母、數字、連字符),按鍵盤映射(ABC→2, DEF→3...)轉為標準 7 位數字格式 XXX-XXXX,統計出現≥2次的
HDOJ 2478 Slides:移除一個矩形後最大交集面積
問題 給定 N 個矩形(左下 (x1,y1),右上 (x2,y2)),移除恰好一個矩形,使剩餘 N-1 個矩形的交集面積最大。N ≤ 100,000。 核心觀
HDU 2000-2023 系列題解匯總:基礎算法與模擬專項訓練
題目列表與核心考點 ID標題核心算法/技巧 2000字符排序三字符冒泡/選擇排序 2008正負零計數輸入處理、浮點比較 ==0 陷阱 2009平方根序列和迭代
HDU 1401 Solitaire:8×8 棋盤四子 BFS 狀態空間搜索
問題建模 8×8 棋盤,4 個相同棋子,初始/目標位置給定。 移動規則:平移到相鄰空格(上下左右),或跳躍過一個相鄰棋子落到緊鄰空格。 判斷:能否在 ≤ 8
POJ 2342 樹形 DP 入門:最大權獨立集
問題模型 樹上每個節點有權值,選取節點集合使無兩相鄰節點同時被選,最大化權值和。經典樹上最大權獨立集問題。 狀態定義 dp[u][1]:選擇節點 u 時,以
POJ 2417 Discrete Logging:BSGS 標準模板應用
題目重述 同 HDU 2815:給定質數 P、底 B、目標 N,求最小 L ≥ 0 使 B^L ≡ N (mod P)。多組輸入,P < 2³¹。 BSGS
線性表練習:有序順序表去重(原地刪除重複元素)
問題 給定有序順序表,刪除所有值重複的元素,使剩餘元素值互不相同。要求原地修改,O(1) 額外空間。 算法:雙指針/快慢指針 k 指向當前不重複部分的末尾(
MFC 樹形/列表視圖 HitTest 實現:獲取光標下項目索引
核心 API CPoint pt; GetCursorPos(&pt); ScreenToClient(&pt); 獲取客戶區坐標。 CTreeCtrl::H
HDU 1505 City Game:最大全 1 子矩陣(直方圖法擴展)
問題轉化 n×m 網格,F 表示可用,R 表示障礙。求最大全 F 子矩陣面積(輸出面積×3)。 算法:逐行構建高度數組 + 單調棧 掃描每行,維護 heig