HDU 4709 Herding:最小三角形面積(三點不共線)
問題描述 給定 N (≤ 100) 0 的三角形,求最小面積。不存在輸出 Impossible。 解法:三重循環枚舉所有三元組 N≤100 ⇒ C(100,3
Fibinary Numbers:斐波那契進制加法實現
問題描述 斐波那契進制:第 i 位(從右起 0)權值為 F(i+2)(F(2)=1, F(3)=2, F(4)=3, F(5)=5...)。輸入兩個此進制數(0
UVA 11729:士兵洗腦調度貪心策略求最短總時間
問題描述 T 個士兵,每個士兵洗腦需時 A,洗腦後執行任務需時 B。同一時間只能洗腦一個士兵,但洗腦完成後可並行執行任務。求所有士兵洗腦並完成任務的最短總時間。
HDU 1150 Machine Schedule:匈牙利算法求二分圖最大匹配詳解
問題模型 n 條生產線,m 台機器,k 條兼容關係(生產線 i 可用機器 j)。每條生產線分配一台機器,每台機器僅屬於一條生產線。求最大分配數。即二分圖最大匹配
HDU 1717 循環小數化分數:純循環與混循環轉換算法詳解
數學原理 1. 純循環小數 形式:0.dddd... 或 a.dddd...。設循環節長度為 k,循環體數字為 D。則分數 = D / (10^k - 1)(即
HDU 4710:周期性絕對差值求和的數學規律與優化
問題大意 給定 n, a, b。定義序列 x_i = (i mod a), y_i = (i mod b)。求前 n 項 |x_i - y_i| 之和。n, a
Ray Through Glasses:大數費波那契數列第 n 項計算
問題本質 光線穿過三層玻璃的傳遞路徑數滿足費波那契遞推:F(1)=1, F(2)=2, F(n)=F(n-1)+F(n-2)。輸入 n (n ≤ 10000),
LeetCode Median of Two Sorted Arrays:二分查找第 k 小元素 O(log(m+n)) 解法
問題描述 給定兩個已排序數組 A (長度 m) 和 B (長度 n),求合併後的中位數。要求時間複雜度 O(log(m+n))。 核心思路:轉化為求第 k 小
HDOJ 2689 Sort it:樹狀數組求逆序對數(最小交換次數)
問題轉化 給定 1~n 的一個排列,只能交換相鄰元素,求排成升序所需的最小交換次數。這等價於求逆序對數。 樹狀數組 (Fenwick Tree) 解法 遍歷排
函數指針與指針函數深度解析:定義、用法與區別
核心區別 類型含義聲明示例 函數指針指向函數的指針void (*f)(int, int); 指針函數返回指針的函數void* f(int, int); 區別
POJ 3041 Asteroids:匈牙利算法求二分圖最大匹配
問題描述 N×N 網格中有 K 顆小行星,每顆佔據一個格子。可放置橫向或縱向的激光炮,每條炮可消滅一行/列上的所有小行星。求消滅所有小行星的最少炮數。等價於二分
HDU 4127 Flood-it!:IDA* + BFS 求最小翻轉步數
問題大意 給定 n×n 顏色棋盤(顏色 0~5),每次可將左上角連通區域改為任意其他顏色,使其與相鄰同色格合併。求將整個棋盤變成單一顏色的最小步數。n ≤ 10
UVA 10148 Advertisement:區間選點貪心最小化廣告牌數量
問題描述 一條路上有 n 個慢跑者,每個人的跑步區間為 [a, b](整數端點)。需在整數點放置廣告牌,使每個區間內至少有 k 個廣告牌。求最小廣告牌總數及其位
UVALive 2322 Wooden Sticks:排序 + 貪心求最小非降子序列分割數
問題描述 給定 n 根木棍,每根有左、右端點坐標。求將所有木棍分成最少組,使每組內木棍的左右端點均非嚴格遞增(即可排成一條非降序列)。 貪心策略 按左端點升
POJ 1486 Sorting Slides:二分圖最大匹配求確定配對
問題背景 n 張透明幻燈片疊放,已知每張的矩形範圍和可見數字坐標,但不知數字屬於哪張。求能確定的(幻燈片,數字)配對。輸出確定的配對或 none。 建模與算法
HackerRank Pairs:集合查找統計差值為 K 的數對
問題描述 給定 n 個整數和一個正整數 k,統計數組中差值恰好為 k 的無序數對個數。n ≤ 10^5,k < 1e9,數值在 int 範圍內。 解法:哈希集
PID 控制算法模板:增量式 PID 的 C 語言實現
增量式 PID 公式 增量式 PID 不需要記錄歷史誤差總和,僅依賴最近三次誤差: Δu(k) = Kp * [e(k) - e(k-1)] + Ki * e(