C/C++ 指針聲明解析:指針、函數指針、指針數組、數組指針
核心解析原則:從變量名出發,按運算符優先級結合 優先級(高→低):() [] * (指針解引用)。 口訣:「從變量名起,先右後左,遇括號轉向」。 六大經典聲明
VC++ 獲取系統時間與程序運行時間的五種方法
方法一:CTime 類(精確到秒) 獲取當前時間 CTime tm = CTime::GetCurrentTime(); CString str = tm.Fo
C++ 類的封裝:訪問控制、構造/析構/拷貝構造、類組合
封裝的兩大核心 數據與方法綁定:將屬性(成員變量)和行為(成員函數)封裝在類內部。 訪問控制:通過 public、private、protected 隱藏實現
C# 基礎語法總結:語句、分支、循環與異常處理
一、順序語句 程式碼按書寫順序自上而下依次執行,無跳轉。 二、條件/分支語句 1. if 語句 單分支:if (條件) { 滿足時執行; } 雙分支:if
HDU 1533 Going Home:二分圖最優匹配(KM 算法)
問題描述 給定 N×M 網格,包含若干個 m(人)和 H(房子),數量相等。每個人必須分配到一間不同的房子,移動代價為曼哈頓距離。求最小總代價。 模型轉化:最
POJ 3250 Bad Hair Day:單調棧統計可見牛數
問題描述 N(≤ 80,000)頭牛排成一列面向東,第 i 頭牛高度 h_i。牛 i 能看到其右側連續比自己矮的牛,遇到 ≥ 自身高度的牛即停止。求所有牛能看到
POJ 2421 Constructing Roads:預設邊權值為 0 的最小生成樹
問題描述 給定 N 個點的完全圖,點間邊權為輸入的距離矩陣。另有 M 條「已建」道路,要求在保證這些道路必須被選入的前提下,構建最小生成樹(MST),輸出總權值
ZOJ 3772 Calculate the Function:矩陣線段樹解區間遞推查詢
問題描述 給定一個長度為 N 的數列 A₁, A₂, …, Aₙ,以及 M 個查詢。每個查詢提供區間 [L, R],定義函數 F(x) 在該區間上: F(L)
LeetCode Summary Ranges:有序陣列區間合併的三種實現優雅度遞增
題目 給定無重複排序整數陣列,合併連續區間輸出。例:[0,1,2,4,5,7] → 5,7]。 版本一:哨兵法(直觀但冗長) vector summaryRa
HDU 1011 Starship Troopers:樹形 DP + 背包解決蟲族基地殲滅問題
題目轉述 樹形洞穴,根節點 1 為入口。每節點有 bug 數與 brain 概率。每兵可消滅 20 隻蟲。兵不可回頭,留守節點消滅蟲後才能前進。M 名士兵,最大
LeetCode 78 Subsets:位運算與 DFS 回溯兩種方法生成所有子集
題目 給定無重複整數陣列 nums,返回所有子集(冪集)。解集不含重複子集。 方法一:位運算枚舉 n 個元素 → 2ⁿ 個子集。mask ∈ [0, 2ⁿ)
C 語言統計單詞數:狀態機法處理空格分隔
演算法:狀態機判斷單詞邊界 掃描字串,維護 in_word 狀態: 遇非空格且 !in_word → 新單詞開始,count++, in_word=1 遇空格
HDU 5073 Galaxy:貪心 + 前綴和優化求最小轉動慣量
題目轉述 n 顆等質量恆星排成一直線,位置 x[i]。可移動 ≤ k 顆恆星到任意位置(疊放允許)。移動後以新質心旋轉。求最小轉動慣量 I = Σ (x_i -
LeetCode 39 Combination Sum:DFS 回溯求目標和組合(可重複選擇)
題目 給定無重複正整數陣列 candidates 與目標 target,找出所有和為 target 的組合。可重複選擇元素,組合內非遞減,解集去重。 DFS
Codeforces 238E Meeting Her:圖論 + 記憶化搜索解決公交轉乘最壞情況
題目轉述 有向圖 n≤100,邊權 1。從 a 到 b。k 條公交路線,每路線 (s_i, t_i) 每秒隨機選一條最短路徑行駛。人在路經節點可上車,任意節點可
HDU 4630 No Pain No Game:線段樹離線查詢區間最大 GCD
題目轉述 給定 1..n 的排列 a[1..n],Q 次查詢 [l,r],求區間內任意兩數的最大 GCD。n,Q ≤ 50000。 核心觀察 區間內兩數 G
LintCode Ugly Number II:三指針 O(k) 線性生成第 k 個醜數
題目 醜數定義:質因子只包含 3, 5, 7。求第 k 個醜數。前幾項:3, 5, 7, 9, 15, 21, 25, 27... 方法一:最小堆 + 去重集