九度OJ 1006 ZOJ問題:字符串模式識別與規律推導
題目背景 九度OJ 1006 要求判斷一個僅由 z、o、j 組成的字符串是否符合特定語法規則。題目給出三條規則,核心在於找出 Accepted 的數學規律。
HDU 2830 Matrix Swapping II:動態規劃與貪心策略求解最大子矩陣
題目分析 HDU 2830 Matrix Swapping II 是一道經典的動態規劃題目,核心在於利用「列高度累積 + 排序貪心」的技巧,在 O(n·m lo
ZOJ 1649 監獄營救:帶權 BFS(優先隊列 Dijkstra 變體)求最短時間
問題建模 N×M 迷宮(N,M ≤ 200),格子類型:牆 #、路 .、守衛 x、天使 a、營友 r。 移動上下左右耗時 1,殺守衛額外耗時 1(即進入 x 格
C++ 繼承實戰:Point → Circle → Cylinder 多層派生與運算符重載
類層次設計 Point (x, y) └─ Circle (r) // 增加半徑 └─ Cylinder (h)
ACM/ICPC 輸入輸出模式完全解析:四大類型統一模板與 C/C++ 實現
競賽輸入輸出四大範式 掌握這四類模式,覆蓋 99% 算法題輸入處理需求。 類型一:未知數量,EOF 結束 特徵:無測試組數,文件末尾終止。 例:A+B Pro
STM32 USB 開發避坑指南:描述符配置、端點雙緩衝、中斷處理與速度優化
一、usb_desc.c/h:描述符定制核心 根據通信類型(HID/CDC/自定義)修改 ConfigDescriptor,增刪端點描述符。 SIZ_CONF
二叉搜索樹鏡像轉換:遞歸與迭代(棧)雙重實現詳解
問題描述 給定一棵二叉搜索樹(BST),將其轉換為鏡像樹,即交換每個節點的左右子樹。轉換後原左子樹節點值均大於右子樹節點值(BST 性質反轉)。 節點定義
數據結構基礎:三元組 ADT 的 C 語言實現與操作封裝
三元組抽象數據類型定義 三元組是固定包含 3 個元素的線性結構。本實現採用「類 C」風格:結構體指針 + 操作函數集,模擬面向對象封裝。 核心數據結構 ty
糖果包裝問題:弗羅貝尼烏斯數計算與動態規劃求解
問題描述 糖果只能按 4 顆/包 或 7 顆/包 賣,不能拆包。求最大無法湊出的糖果數。輸入兩個互質正整數 a, b (≤ 1000),輸出弗羅貝尼烏斯數 g(
C++ 進階技巧:虛擬構造函數、虛擬拷貝構造函數與虛擬化非成員函數
痛點:構造函數不能是虛函數 C++ 不支持虛構造函數,但常需「根據運行時信息創建具體對象」(如從文件反序列化)。解決方案:**虛擬構造函數** —— 一個靜態工
HDU 3833 序列三元組判定:雙向枚舉優化暴力解法
問題抽象 給定 1..n 的一個排列,判斷是否存在索引 i1 < i2 < i3 使得 a[i1] + a[i3] = 2 * a[i2](即三項成等差數列)。
HDU 2112 HDU Today:字符串映射 + Dijkstra 最短路模板實戰
題目場景 給定地名字符串作為節點,邊有權重。需求:多組測試數據,每組給起點、終點及若干條雙向邊,求最短路徑長度。節點數 ≤ 1000,邊數 ≤ 10000。
POJ 1742 Coins:多重背包可行性優化——從 TLE 到 AC 的布爾 DP 技巧
題目大意 給 n 種硬幣,面值 A[i]、數量 C[i]。問能否湊出 1..m 中的每個值?輸出可湊出的值的個數。n ≤ 100, m ≤ 100,000。
HDU 1992 找規律:動態規劃推導與 O(N²) 預計算解法
問題描述 求滿足特定遞推關係的數列第 n 項。經分析得遞推式: dp[i] = dp[i-1] + 4*dp[i-2] + 2 * Σ dp[i-
C/C++ 三字母詞:歷史遺產、替換規則與現代編譯器行為
什麼是 Trigraph? Trigraph(三字母詞/三連字)是 C/C++ 標準為兼容早期缺鍵鍵盤(無 # \ ^ [ ] { } | ~ 等符號)而定義的
libevent 實現 Echo Client:異步網絡編程入門實戰
為什麼選擇 libevent? libevent 是輕量級、跨平台的事件通知庫,支援 epoll/kqueue/IOCP 等高性能 I/O 多路復用機制,適合編
HDU 1244 Max Sum Plus Plus Plus:多段定長不重疊子數組最大和 DP 詳解
問題重述 給定長度為 n 的正整數序列,須選取 m 段不重疊、按順序的連續子數組,第 i 段長度固定為 lᵢ,最大化所有選中元素之和。n ≤ 1000, m ≤
C++ 文件流操作全解析:讀寫、getline、指針定位與文件大小獲取
文件流核心類 C++ 通過 <fstream> 提供三大類: ofstream:輸出流(寫文件) ifstream:輸入流(讀文件) fstrea