Topcoder SRM 525 Div1 300 DropCoins:枚舉子矩形 + 貪心計算最少移動步數
題目轉化 n×m 網格(n,m ≤ 30),每格有無金幣。每步可將所有金幣向上/下/左/右整體平移一格,移出邊界的金幣消失。求使剩餘金幣數恰好為 K 的最少步數
POJ 1442:Treap(樹堆)與雙優先隊列兩種解法維護動態中位數
問題描述 給定序列 A[1..n] 與查詢位置 B[1..m](遞增),每次將 A[i] 插入數據結構,當 i 等於某 B[k] 時輸出當前第 k 小的數。n,
POJ 2049 Finding Nemo:二維網格 BFS + 牆門建模求最少穿門數
問題建模 海底迷宮:牆壁平行座標軸,厚度為 0;門長 1 開在牆上。馬林從 (0,0) 出發,需穿過最少門找到尼莫 (f1,f2)。牆/門坐標範圍 [1,199
Google C++ 風格指南:頭文件包含順序與隱藏依賴消除
推薦包含順序 為了增強可讀性、避免隱含依賴,Google 規定: 首選頭文件:對應的 .h 文件(如 foo/internal/fooserver.cc 先包
HDU 2680 Choose the best route:超級源點 + Dijkstra 求多起點到單終點最短路
題目模型 有向圖,n 點 m 邊,終點固定為 s。給定 w 個起點,求任一起點到 s 的最短路長度。n < 1000, m < 20000。 超級
C/C++ 獲取本地時間的常見方法:跨平台與系統級 API 總結
跨平台標準庫方法 方法一:手動組裝 time.h 結構體 time_t t = time(NULL); struct tm* stime = localtim
BZOJ 2002 [HNOI2010] Bounce 彈飛綿羊:Link-Cut Tree / Splay 動態維護路徑跳躍
問題建模 n 個裝置排成一排,第 i 個彈力係數 ki,綿羊從 i 跳到 i+ki,超出邊界即彈飛。兩類操作: ① 查詢:從 j 出發彈幾次彈飛? ② 修改:將
C++ struct 與 union 深度解析:內存佈局、訪問權限與高級特性
struct:不只是 C 的結構體 C++ 對 struct 進行了重大擴充: 真正的類型:定義變量時無需 struct 關鍵字,也無需 typedef。 可
UVA 503:三維展開為二維平面求最短直線距離
題目挑戰 經典的「螞蟻爬盒子」問題變體:長方體表面上兩點間的最短路徑。將三維展開為二維平面,求直線距離最小值。WA 一天才發現:除考慮經過 0、1 個面外,必須
LightOJ 1339 Strongest Community:莫隊算法(分塊暴力)解決區間眾數頻率
題目背景 直線上有 n 棟房子,屬於 c 個連續區段組成的社區。q 次詢問:區間 [i, j] 中出現次數最多的社區編號出現了多少次?n ≤ 1e5, q ≤
HDOJ Choose the best route:反向建圖 + Dijkstra 求多源最短路徑
題目大意 琪琪想拜訪朋友但暈車,需找出從家附近多個起點站到朋友家附近唯一終點站的最少花費時間。給定有向圖,站點編號 1~n,m 條單向邊,每條邊有耗時。輸入 w
HDU 2102 A計劃:BFS 配合優先隊列求解最短路徑詳解
這道題目屬於經典的 BFS 配合優先隊列應用。初見四分之一的 AC 率略感壓力,實際著手後發現只需在標準 BFS 模板上稍作修改即可一次通過。不過在主函數與全域
HDU 2563 統計問題:遞推關係求走法數
問題 二維平面無限大,每步移動一格(上、左、右),不能後退(下),走過格子塌陷不可重複。求走 n(≤ 20)步的不同方案數。 狀態分析 設 xn = 第 n
POJ 3666 Making the Grade:DP 求單調序列最小修改代價
問題 給定序列 a[1…n](n ≤ 2000),修改為非嚴格單調(遞增或遞減)序列 b,代價 Σ|ai−bi|。求最小代價。 關鍵結論 最優解中每個 bi
POJ 2367 Genealogical tree:拓撲排序輸出合法發言順序
問題 N(≤ 100)個火星人,每行列出其子女。要求輸出一個順序,使每人比其所有後代更早發言。多解任意輸出一個。 拓撲排序 (Kahn) 邊方向:父 → 子。
HDU 4324 Triangle LOVE:拓撲排序判環
問題 給定 n(≤ 2000)人的錦標賽圖(任意兩點間恰有一條有向邊)。判斷是否存在有向三環(A→B→C→A)。 關鍵定理 錦標賽圖無有向三環 ⇔ 圖是 DA
SPOJ 1811 LCS:後綴自動機求最長公共子串
問題 給定兩字符串 S, T(長度 ≤ 105),求最長公共子串長度。 後綴自動機 (SAM) 核心 狀態:len(最長長度)、link(後綴鏈接)、nex
HDU 4370 0 or 1:矩陣轉圖求最短路
問題轉化 n×n 矩陣 C,找 0/1 矩陣 X 滿足: (1) 第一行和 = 1;(2) 最後一列和 = 1;(3) 中間行列和相等。 最小化 Σ CijXi