任意進制轉換(2~16進制):以十進制作為中介的通用演算法
問題描述 實現任意兩種進制(2 進制至 16 進制)之間的非負整數轉換。輸入格式為 a n b,表示將 a 進制數 n 轉換為 b 進制輸出。a、b 為十進制整
陣列中僅出現一次的兩個數字:異或運算巧解
問題描述 給定一個整數陣列,其中只有兩個數字出現一次,其餘數字均出現兩次。請找出這兩個只出現一次的數字,並按從小到大的順序輸出。陣列大小 n 滿足 2 ≤ n
演算法筆記:0-1 背包問題動態規劃與跳躍點優化完整解析
問題定義 給定 `n` 件物品,第 `i` 件重量 `w[i]`、價值 `v[i]`,背包容量 `C`。每件物品取或不取 (0-1),求最大總價值。 基礎 D
Windows 文件/目錄遞歸查找類封裝:CFileAndDirFinder 實現
設計目標 封裝 Win32 API `FindFirstFile`/`FindNextFile`,提供三種查找模式: 查找所有子目錄 (含遞歸)。 查找當前目
十進制轉八進制:棧實現除基取餘,經典教學題
題目大意 讀入多個十進制正整數(EOF 結束),將每個數轉換為八進制輸出。本質為 **除 8 取餘,餘數逆序輸出**。 算法:棧模擬逆序 輸入 n。 whi
NYOJ 647 十進制轉二進制:整數與小數部分分別處理
題目要求 輸入十進制小數,輸出其二進制表示。整數部分除 2 取餘逆序,小數部分乘 2 取整順序,小數位數限制 20 位防止無限循環。 算法流程 分離整數部
Windows 程式設計中的 Unicode 與字串處理:從 ASCII 到 UTF-16、TCHAR、最佳實踐全指南
前言:字元編碼演進與 Windows 的選擇 ASCII (7-bit, 128 碼位):僅支援英文、數字、控制字元,無法表示歐洲語言符號(如 £)、更別說中
POJ 1201 Intervals:差分約束系統 + SPFA 求最小整數集合大小
題目大意 給 n (≤ 50000) 個閉區間 [a_i, b_i] 及整數 c_i (1 ≤ c_i ≤ b_i-a_i+1)。求最小整數集合 Z,使對每個區
HDU 1789 做作業:貪心策略「先做扣分高、截止早」最小化總扣分
題目大意 n 門課作業,每門有截止天數 d_i 和未完成扣分 s_i。每天只能做一門作業(佔用整天)。求安排順序使 **總扣分最小**,輸出最小扣分和。 貪心
和為 S 的連續正數序列:滑動窗口 / 雙指針 O(S) 枚舉所有解
題目大意 給定正整數 S (≤ 1,000,000),找出所有 **至少包含兩個數** 的連續正數序列,使其和等於 S。按起始數遞增順序輸出每個序列,每組結尾輸
有序數組中和為 S 的兩個數:雙指針 O(n) 尋找乘積最小解
題目大意 給定 **遞增** 數組 a[0..n-1](n ≤ 10^6)與目標和 S。找兩數 a[i] + a[j] = S (i < j)。若多解,輸出 *
二叉樹深度計算:遞歸 / 迭代 / 層序遍歷三種實現
題目大意 輸入 n (≤ 10) 個節點,編號 1~n,根為 1。每行給出左右孩子(-1 表示無)。求樹的深度(根到葉最長路徑節點數)。 資料結構 struc
有序數組中數字出現次數統計:二分查找左/右邊界 + 差值法
題目大意 給定 **已排序** 數組 a[0..n-1](n ≤ 10^6),m ≤ 1000 次查詢,每次詢問整數 k 在數組中出現幾次。輸出計數。 k」
醜數(Ugly Number)問題:動態規劃三指針法求第 N 個醜數
題目大意 醜數定義:質因子僅包含 2、3、5 的正整數。1 視為第一個醜數。求第 N (1 ≤ N ≤ 1500) 個醜數。多組測資,EOF 結束。 核心觀察
最大子向量和(連續子陣列最大和):DP 經典題,附起始/結束索引輸出
題目大意 多組測資,每組給定 n (≤ 100,000) 及 n 個整數(值域 [-1000, 1000])。求 **連續子陣列最大和**,並輸出該子陣列的 *
POJ 3006 迪利克雷定理:打表篩素數 + 等差數列查第 n 個質數
題目大意 給定互質正整數 a, d(a ≤ 9307, d ≤ 346)與 n ≤ 210。等差數列 a, a+d, a+2d, ... 中包含無限多質數(迪利
霍夫曼樹與編碼:儲存結構、構建算法、非遞歸遍歷完整實現
一、資料結構定義 // 霍夫曼樹節點:靜態陣列實現,索引 1~2n-1,0 閒置 struct HTNode { unsigned int weight
C/C++ 宏定義陷阱:宏名稱與括號間不可有空格
現象複現 // 錯誤:宏名與 ( 之間有空格 #define BYTE_COPY_FWD (dst, src, len) \ do { ... } wh