POJ 2010 Moo University - Financial Aid:貪心 + 線段樹維護中位數最大化
問題建模 從 C 名學生中選 N 人(N 為奇數),總花費 ≤ F,使選中學生的「價值中位數」最大。每學生有 val(價值)與 cost(花費)。 解法核心
字符串最長公共子序列(LCS)完整實現:長度計算與路徑回溯輸出
問題定義 給定兩字串,求最長公共子序列(不要求連續)。例:abgfjlmnp 與 afkqln 的 LCS 為 afln。 動態規劃遞推 設 dp[i][j]
C++ STL 算法 std::reverse 實戰:一鍵反轉 vector/string 容器
標準庫介紹 <algorithm> 中的 reverse 接受雙向迭代器區間 [first, last),原地反轉元素順序,時間 O(n)、空間 O
UVA 1449 Dominating Patterns:AC 自動機求文本中出現次數最多的模式串
問題重述 給定 N (≤150) 個小寫字母模式串(長度 1~70)與一長文本(長度 ≤10⁶),找出在文本中出現次數最多的模式串(可多個),按輸入順序輸出。
Codeforces Round #190 (Div. 2) 前兩題解題報告:A 題構造與 B 題貪心
比賽心得 模擬賽僅 AC 兩道水題,C 題思路有了但時間不足。記錄 A、B 題解法備忘。 問題 A:構造輸出 題意簡化:給定 n, m,需輸出 n+m-1 對
iOS plist 文件讀寫完整指南:從沙盒路徑獲取到字典存取
核心流程 取得沙盒 Documents 目錄路徑 拼接完整 plist 檔案路徑 使用 NSDictionary 的 writeToFile:atomical
POJ 1458 / HDU 1159 最長公共子序列(LCS)完整解析與動態規劃實現
問題描述 給定兩個序列 X 和 Y,要求找出它們的最長公共子序列(Longest Common Subsequence,簡稱 LCS)長度。子序列不要求在原序列
UVA 10499 / POJ 10499 The Land of Justice:球體切割利潤計算 O(1) 數學公式
問題背景 「正義之國」規定:商品售價按表面積計算,而非體積。商人買入一個完整球體,將其切成 N 等份 (每一切面都過球心),每份形狀相同 (如橘子瓣)。求利潤率
二叉搜索樹轉有序雙向鏈表:中序遍歷原地指針調整 O(n) 算法 (備份版)
問題描述 給定一棵二叉搜索樹 (BST),要求將其轉換為排序的雙向鏈表。不能創建新節點,只能調整原有節點的 left (前驅) 和 right (後繼) 指針。
二叉搜索樹轉有序雙向鏈表:中序遍歷原地指針調整 O(n) 算法
問題描述 給定一棵二叉搜索樹 (BST),要求將其轉換為排序的雙向鏈表。不能創建新節點,只能調整原有節點的 left (前驅) 和 right (後繼) 指針。
把數組排成最小的數:自定義比較器 + 排序 O(n log n) 解法
問題描述 給定 n 個正整數,將它們拼接成一個數,求所有排列中數值最小的拼接結果。 例:{32, 321} → 32132 < 32321,答案為 32132。
活動選擇問題:貪心算法 O(n log n) 最優解法與 0-1/分數背包對比
問題描述 給定 n 個活動,每個有開始時間 s[i] 和結束時間 f[i]。同一時間只能進行一個活動。求最大兼容活動子集 (活動數最多)。 貪心策略:最早結束
C++ 虛表 (vtable) 與虛指針 (vptr) 深度解析:內存佈局、多態實現與手動調用
核心概念 術語含義存儲位置生命周期 虛表 (vtable)類的虛函數地址表 (數組)只讀數據段 (全局唯一,屬於類)程序運行全程 虛指針 (vptr)指向虛表
BZOJ 2275 [Coci2010] HRPA — 費波那契尼姆遊戲與 Zeckendorf 定理
問題描述 有一堆 N 顆石子,A、B 輪流取,A 先手。規則: 每次至少取 1 顆 最多取 上一手取數的 2 倍 取走最後一顆者獲勝 求:A 為了必勝,第一
C++ 基於 ATL/COM 播放 Flash (SWF) 完整實現指南
技術背景 在 Windows 桌面應用中嵌入 Flash 播放器,需使用 ActiveX 控件 (ShockwaveFlash.ShockwaveFlash)。
華為面試題:將數組中 0 移至末尾,非零元素保持相對順序 — 雙指針 O(n) 原地算法
問題描述 給定整數數組 A[0..n-1],包含若干 0。要求原地調整數組,使所有 0 移至數組末尾,非零元素保持原有相對順序移至前部。返回第一個 0 的下標
九度 OJ 1523:二叉樹層序遍歷 (水平打印) — BFS 非遞歸實現
問題描述 給定一棵二叉樹,要求從上到下、同層從左到右打印所有節點值(即層序遍歷 / BFS)。 輸入格式 (多測試用例,EOF 結束): n:節點數 (1 ≤
C++ 深度解析:數組作為函數參數的本質 — 指針退化與避坑指南
核心結論 數組作為函數參數時會退化為指針,無法按值傳遞,函數內部對數組的修改會影響原數組。 現象演示 #include <iostream> us