HDU 1166 敵兵布陣 - 線段樹區間查詢與單點更新模板題
問題描述 有 N 個營地(N ≤ 50,000),初始各有若干士兵。支援三種操作(最多 40,000 次): Add i j:第 i 營地增加 j 人 Sub
AOJ 0033 Ball - 10 顆球雙棧排序 DFS 回溯求解
問題描述 有 10 個球(編號 1-10)從上方依次落下,每球可選擇進入左邊或右邊軌道。所有球落下後,若左右兩軌道球的編號均為從小到大順序,輸出 YES,否則
C/C++ printf 輸出百分號 % 的正確寫法
問題 在 printf 格式字符串中,% 是格式佔位符的起始符號。若要輸出字面上的百分號 %,需要怎麼寫? 解決方案:雙重百分號 %% 在格式字符串中連續寫兩
C/C++ 整數除法詳解:向零取整規則與負數處理
核心規則:向零取整 C/C++ 整數除法採用向零取整(Truncation toward zero):捨去小數部分,保留整數部分。即結果朝 0 方向取最接近的整
C++ 模板類實現單鏈表 - 完整代碼與測試範例
設計目標 使用 C++ 模板實現泛型單鏈表,支援基本操作:尾插、尾刪、拷貝構造、賦值運算符、遍歷輸出。 核心類結構 // 節點類 template clas
AOJ 0121 Seven Puzzle - 廣度優先搜索求最少移動步數
問題描述 有一個 2×4 的拼圖板(共 8 個格子),數字 0-7 各佔一格,0 代表空格。每次可將上下左右相鄰的數字移動到空格位置。給定初始狀態,求到達目標狀
POJ 2406 Power Strings - KMP 算法求字符串最大循環次數
問題描述 給定字符串 s,定義冪運算 a^n 為字符串 a 重複 n 次。求最大的 n,使得 s = a^n 對某個字符串 a 成立。字符串長度 ≤ 1,000
LeetCode 231:2 的冪次方判定 - 位運算與迭代雙解法
問題描述 給定一個整數,編寫函數判斷其是否為 2 的冪次方(即 2^k, k ≥ 0)。 方法一:位運算(最優解) 核心性質:2 的冪次方在二進制中只有最高位
LeetCode 110:平衡二叉樹判定 - 遞歸與優化解法
問題描述 給定一棵二叉樹,判斷其是否為高度平衡。平衡二叉樹定義:任意節點的左右子樹高度差不超過 1。 遞歸解法(自頂向下) 分別遞歸計算左右子樹高度,再遞歸判
C++ 實現 Thrift RPC 入門:從 IDL 定義到客戶端/服務端完整範例
概述 Apache Thrift 是一款跨語言的 RPC 框架,透過定義中介介面描述語言(IDL)檔案,自動生成多語言的客戶端與服務端代碼。本文以 C++ 為例
LeetCode 筆記:跳躍遊戲 II - 最少跳躍次數的貪心策略
問題描述 給定非負整數陣列,初始位於第一個索引。每個元素代表該位置最大跳躍長度。目標是以最少跳躍次數到達最後一個索引。 範例: A = [2,3,1,1,4]
LeetCode 筆記:跳躍遊戲 - 貪心與動態規劃雙解法
問題描述 給定一個非負整數陣列,初始位於第一個索引。陣列中每個元素代表在該位置可以跳躍的最大長度。判斷是否能到達最後一個索引。 範例: A = [2,3,1,
LeetCode 198:打家劫舍問題完整解析與動態規劃實現
問題描述 你是一名專業強盜,計劃沿著一條街道依次打劫房屋。每間房屋內存放著一定數量的現金,但相鄰房屋之間裝有防盜系統,若同一夜連續闖入兩間相鄰房屋,系統會自動報
LeetCode 213:House Robber II(環形打家劫舍)
一、題目描述 房屋圍成一圈,首尾相鄰。其他同 House Robber。求最大搶劫金額。 二、解題思路:拆環為鏈 首尾不能同時搶。分兩種情況取最大: 1. 搶
C++ log10 函數妙用:快速求數字位數
一、場景 求兩數之和的十進制位數。傳統方法用循環除 10 計數,但 log10 可 O(1) 解決。 二、原理 log10(x) 返回 x 的以 10 為底對
LeetCode 66:Plus One(加一)
一、題目描述 給定非負整數數組 digits 表示一個整數(最高位在前),對該整數加一,返回新數組。 範例: [1,2,3] → [1,2,4];[9,9] →