LeetCode 62 Unique Paths - 不同路徑數 DP 與空間優化
問題描述 機器人從 m×n 網格左上角走到右下角,只能向右或向下移動,求不同路徑總數。m, n ≤ 100。 DP 狀態定義與轉移 dp[i][j] 走到 (
HDU Game of Connections - 卡特蘭數與大數計算詳解
問題抽象 2n 個點圍成圓,兩兩連線不相交的方案數。等價於 凸 2n+2 邊形三角剖分 方案數,即第 n 個 卡特蘭數。 卡特蘭數遞推公式 C_0 = 1 C
LeetCode Path Sum II - 路徑總和 II 遞歸回溯完整解析
題目要求 給定二叉樹根節點與目標和 sum,找出所有從根到葉節點路徑值之和等於 sum 的路徑。返回路徑列表。 遞歸回溯核心邏輯 class Solution
BZOJ 3029 守衛者的挑戰 - 三維期望 DP 優化技巧
問題建模 n 個獨立事件,第 i 事件發生概率 p_i,收益 a_i (可負)。初始收益 k。求 n 事件後:發生事件數 ≥ l 且 總收益 ≥ 0 的概率。
POJ 3264 Balanced Lineup - RMQ 區間最值查詢線段樹實現
問題描述 N (≤ 50,000) 隻牛排成隊,Q (≤ 200,000) 次查詢區間 [A, B] 內最高與最矮牛的身高差。經典靜態 RMQ 問題。 線段樹
HDU 1102 Constructing Roads - 最小生成樹變形技巧
問題本質 給定 n 個村莊完整圖的邊權矩陣,q 條已建道路 (權值視為 0),求連通所有村莊的最小額外建設成本。標準 MST 問題。 巧妙建模技巧 將已建道路
BZOJ 1076 SCOI2008 獎勵關 - 狀壓 DP 期望值計算
問題建模 k 次機會,n 種寶物 (n ≤ 15)。每次等概率出現一種,滿足前置條件 (位掩碼 pre[i]) 可選擇獲取得分 score[i]。求最優策略下期
HDU 1338 Game Prediction 貪心策略解析
問題轉化 雙方各 n 張牌,我方牌面已知。求我方最少贏幾輪 ⇔ 求對方最多贏幾輪。對方最優策略:每輪用比我大的最小牌壓制,無法壓則棄最小牌。 貪心算法流程
Codeforces Round #290 (Div. 2) A/B/C/D 完整解題報告
A. Fox And Snake - 矩陣填充模擬 規律:奇數行全 #,偶數行交替:4k+2 行右端 #,4k 行左端 #,其餘 .。直接雙層循環構造輸出。
LeetCode Binary Tree Postorder Traversal 後序遍歷遞歸與迭代實現
題目要求 給定二叉樹,返回其節點值的後序遍歷序列。示例:輸入 {1,#,2,3} (即 1 的右子為 2,2 的左子為 3),輸出 [3,2,1]。要求嘗試非遞
HDU 2089 不要62 - 數位 DP 經典入門題詳細解析
問題重述 統計區間 [n, m] (0 < n ≤ m < 1,000,000) 中不含「4」或「62」的數字個數。多組查詢,0 0 結束。 核心
HDU 1085 Holding Bin-Laden Captive! 母函數求解最小不可付金額
問題描述 給定三種面值硬幣 (1、2、5) 及其數量 num_1、num_2、num_5 (0 ≤ num_i ≤ 1000),求無法用這些硬幣湊出的最小正整數
深度解析 C++ 類對象內存佈局與 sizeof 計算規則
核心概念:數據類型大小與對齊機制 理解 sizeof 需先掌握基本類型在不同編譯環境下的大小差異: 16 位編譯器 (如 Turbo C):int 佔 2 字
解決 Windows 8 下 VC++ 6.0 不兼容問題完整教程
前言 Visual C++ 6.0 作為經典開發工具,在 Windows 8 及以上系統上常會遇到兼容性問題,導致無法正常啟動或運行。本文提供一套經實測有效的解
多線程中 fork 的陷阱:鎖、文件描述符與 pthread_atfork
多線程程序中調用 fork 的風險與對策 核心問題:fork 僅複製調用線程 Linux man page 明確:fork() 創建的子進程只有調用 fork
C++ Redis mset 二進制數據封裝三種方案對比
C++ hiredis 實現 mset 批量寫入二進制數據的三種方案 需求背景:使用 hiredis 客戶端調用 Redis MSET key1 val1 ke
C++ 程序設計實踐:二維數組轉單/雙向鏈表並實現首尾最大最小節點交換
C++ 程序設計實踐指導 1.10 - 鏈表綜合練習 實驗要求: 將 3×4 二維數組分別存儲為單鏈表和雙向鏈表,節點包含行號、列號、數值。 實現 Singl