UVA 10106 Product:大整數乘法實現詳解
問題描述 給定兩個非負整數 X, Y(0 ≤ X, Y < 10250),計算它們的乘積。輸入包含多組測試資料,每組兩行各一個整數,輸出對應的乘積。 核心思路
實驗五:貪心算法解決背包問題與帶時限作業排序
實驗目的 掌握貪心算法的思想與一般流程,學會用貪心策略解決實際優化問題。 第一部分:0/1 背包問題(分數背包變體) 1. 程式 6-1 流程圖分析 繪製教材
實驗四:圖的遍歷算法設計與實現(BFS 與 DFS)
實驗目的 掌握圖的深度優先遍歷(DFS)算法。 掌握圖的廣度優先遍歷(BFS)算法。 對應教材《算法設計與分析》第四章內容。 實驗內容:廣度優先遍歷(BF
C++ 學習心得 48 條:從入門到精通的實戰指南
前言 學習 C++ 是一場持久戰,以下整理 48 條核心心得,涵蓋心態、方法、工具選擇、經典書籍與實踐原則,助你少走彎路。 心態與認知篇 把 C++ 當成一
C++ 學習筆記:動態記憶體管理與引用聲明風格
動態記憶體分配與釋放的行為觀察 在 C++ 中,new 與 delete 是動態記憶體管理的核心操作。透過一個簡單的實驗程式,我們可以觀察記憶體釋放後指標的行為
LeetCode LRU Cache:雙向鏈表 + HashMap O(1) 實現
LeetCode 146 LRU Cache - 雙向鏈表 + HashMap 完整實現 設計數據結構支持 get(key) 和 put(key, value)
POJ 2723 Get Luffy Out:2-SAT + 二分查找最大可開門數
POJ 2723 Get Luffy Out - 2-SAT 判斷可行性 + 二分答案 有 2n 把鑰匙組成 n 對,每對只能用一把。m 道門,每門需 2 把鑰
HDU 2476 String Painter:區間 DP 兩階段轉換
HDU 2476 String Painter - 區間 DP 經典兩階段 有字符串 A 和 B(長度 ≤ 100),操作:選擇一段區間將所有字符改為同一字符。
POJ 2828 Buy Tickets:線段樹解決隊列插隊問題
POJ 2828 Buy Tickets - 線段樹單點更新逆序構建隊列 N 人依次到達,第 i 人插在當前隊列第 Pos_i 人後面(Pos_i ∈ [0,
三大基礎排序算法:插入、冒泡、選擇排序對比
基礎排序算法對比:插入 vs 冒泡 vs 選擇 三種最基礎的 O(n^2) 排序算法的實現、穩定性與適用場景。 1. 插入排序 - 穩定 將無序區元素逐個插入
BZOJ 2393 Cirno的完美算數教室:容斥 + DFS 剪枝
BZOJ 2393 - 容斥原理 + DFS 剪枝求區間倍數個數 給定區間 [l, r](r ≤ 10^9),求區間內能被至少一個「僅由數字 2 和 9 組成」
LeetCode 78 子集:回溯法生成所有子集
LeetCode 78 Subsets - 回溯法完整解析 給定不含重複元素的整數數組 nums,返回所有可能的子集(冪集)。解集不能包含重複子集,子集內元素非
BZOJ 3506 [CQOI2014] 排序機械臂:Splay 模擬翻轉操作
BZOJ 3506 - 排序機械臂:Splay 維護序列區間翻轉 給定長度 n 的序列,按值從小到大排序(值相等按原位置序)。每步找到當前最小值的位置,輸出其
最大乘積連續子數組:動態規劃 O(n) 解法
LeetCode 152 最大乘積子數組:DP 狀態壓縮 給定整數數組,找出乘積最大的連續子數組。數組含正負數和 0,乘積符號翻轉特性導致需同時維護最大值和最小
Django bulk_create 事務行為深度解析
Django bulk_create 是否自動包裹事務? 使用 bulk_create 批量插入時,是否需要手動添加事務?通過閱讀 Django 1.5 源碼發
BZOJ 3172 [TJOI2013] 單詞:AC自動機 + Fail樹優化
BZOJ 3172 - 單詞:Fail樹上子樹求和優化計數 給定 n 個模式串,構建 AC 自動機。每個串在文本中出現次數 = 該串終結節點在 Fail 樹子樹