POJ 物品交換層級限制:Dijkstra + 枚舉最低等級求最短路
問題建模 N(≤ 100)個物品,1 號為目標。每物品有價格 P、等級 L、若干替代品(T, V 表示用 T 加 V 金換此物品)。 交換雙方等級差 ≤ M。若
C++ 對象模型:new/delete 運算符深度解析
new 運算符的兩步語義 int *pi = new int(5); 實際分解為: 調用 `operator new(sizeof(int))` 分配原始內存
HDU 1796 How many integers can you find:容斥原理計數
問題 給定 N(< 231)和 m(≤ 10)個不同正整數。求 N 以內(不含 N)能被至少一個給定數整除的整數個數。 容斥原理 對 m 個數的所有非空子集,
LeetCode Gas Station:環形加油站貪心解法
題目大意 N 個加油站成環,gas[i] 為可加油量,cost[i] 為開往下一站耗油。油箱無限大。求能否環行一圈的起始站索引,不能則 −1。解唯一。 貪心證
VS2010 編譯器對 C++11 支持度測試
測試環境 VS2010 (cl 16.xx) 配合 .NET Framework 更新。 對比 g++ 4.9.3(完全支持 C++11)。 測試項目與結
HDOJ 4455 Substrings:遞推 + 樹狀數組統計區間不同元素數
問題 給定長度 n(≤ 106)數組,Q(≤ 104)次查詢:區間長度 w 下所有子區間不同元素個數之和。 遞推公式推導 設 dp[w] 為長度 w 的答案。
POJ 2773 Happy 2006:互質數第 K 個——質因子分解+容斥+二分
問題 給定 m(≤ 106),求第 k(≤ 108)個與 m 互質的正整數。 核心公式 設 m 的不同質因子為 p1…pr。 ≤ x 且與 m 不互質的數 =
HDU 5400 Arithmetic Sequence:暴力枚舉優化版
另一種 O(n) 思路 預處理每個位置向左/向右最長等差段: L1[i]:以 i 結尾、公差 d1 的最長段長度。 R2[i]:以 i 開頭、公差 d2 的最長
UVA 1658 Admiral:最小費用最大流求兩條不相交最短路
問題轉化 求從 1 到 n 的兩條邊不相交的路徑,總長度最小。 等價於:每條邊容量 1,費用為長度,源 1 匯 n,跑最小費用流流量 2。 拆點技巧(可選)
HDOJ 1050 Moving Tables:貪心區間調度
問題建模 走廊兩側各 100 個房間,編號 1…200。移動桌子從 s 到 t 佔用走廊區間 [min, max]。 每次移動 10 分鐘,同一時間走廊任一位置
C++ 與 C# 指針淺析:從原理到實戰
C++ 指針四要素 指針類型:如 int*、char**、int(*)[3]。 指向類型:去掉變量名剩下的類型,如 int* 指向 int。 指針值:存儲的地
HDU 1166 敵兵布陣:樹狀數組(Binary Indexed Tree)實現
樹狀數組核心操作 lowbit(x) = x & (-x) 取最低位 1。 update(i, delta):向上更新所有包含 i 的區間。 query(i):
HDU 1869 六度分離:Floyd 判斷圖直徑 ≤ 6
問題描述 給定 n(< 100)個人,m(< 200)對認識關係。判斷任意兩人之間最短路徑長度是否 ≤ 6。多測試案例。 Floyd-Warshall 算法
1637:概率 DP + Map題目大意 9 堆牌,每堆 4 張,共 36 張。每次隨機選兩堆牌頂相同則移除。求能否移除所有牌的概率。 狀態表示 狀態 = 9 維向量,第 i 維為第 i 堆
UVA 1324 Bring Them There:時擴網絡最大流
問題模型 N(≤ 50)個星系,M 條雙向隧道,每天每條隧道只能通過一艘飛船。需從 S 運 K(≤ 50)台超算到 T,求最少天數及每日調度方案。 時擴網絡構
HDOJ 1875 暢通工程再續:Kruskal/Prim 帶邊長限制的 MST
題目差異 同 HDU 1233,但邊長必須在 [10, 1000] 範圍內才可選。若無法連通所有點輸出 oh!,否則輸出總長度 × 100 保留一位小數。 K
HDOJ 5371 Hotaru's problem:Manacher 算法求 N-序列
問題定義 N-序列:長度 3k,前 k 與後 k 相同,中間 k 與前 k 互為逆序。 即序列形式為 A + reverse(A) + A。 求最長連續子序列滿
HDU 5400 Arithmetic Sequence 另解:暴力枚舉優化
另一視角:枚舉分界點 對每個可能的分界點 i(1 ≤ i ≤ n),將其作為 d1 段結束、d2 段開始的位置。 預處理: up[i]:以 i 為右端點、公差