HDU 2191:多重背包問題(二進制優化/單調隊列)
問題描述 經典多重背包:n 容量,m 類物品,每類有體積 c[i]、價值 v[i]、數量 b[i]。求最大價值。 二進制拆分優化 (O(V Σ log b_i
UVA 11817:球面幾何計算大圓弧長與弦長差
問題描述 給定兩點經緯度,地球半徑 R=6371009。求大圓弧長與弦長的差值(四捨五入整數)。 經緯度轉三維坐標 Point3 get_coord(doub
HDU 3364 Lanterns:高斯消元解 XOR 方程組(開關燈問題)
問題描述 n 盞燈,m 個開關。每個開關控制某些燈(按下翻轉狀態)。q 次詢問,每次給定目標燈狀態(0/1),求從全滅到達目標的開關按法數(每開關最多按一次)。
UVA Live 4328:貪心安排婚禮儀式時間
問題描述 n 對新人舉辦婚禮,牧師需在每場婚禮中主持儀式,儀式佔用婚禮時間的一半以上且不可中斷。給定每場婚禮開始/結束時間,問牧師能否參加所有儀式。 貪心策略
HDU 1501 Zipper:DFS 判斷字符串交織(另一版本)
問題描述 同 ID 4560,給定三字符串 A,B,C,判斷 C 是否由 A,B 交織而成,順序保持。 DFS + 記憶化 狀態 (i, j) 表示 A 用了
HLJ OJ 1214 Around the World:SPFA 判斷油箱容量限制下的圖連通性
問題描述 N 城市,M 條雙向路,油箱容量 V。每條路耗油 c。只能在城市加滿油。問能否從城市 1 出發走遍所有城市(可重複經過)。 建模 V 的邊,判斷剩
最長公共子序列 (LCS):動態規劃 O(n²) 經典算法
問題描述 給定兩個長度 <100 的字符串,求最長公共子序列長度。子序列字符順序保持,不必連續。 DP 定義與轉移 dp[i][j] = 前 i 字符和前 j
POJ 1321 棋盤問題:DFS 放置不相互攻擊棋子
問題描述 n×n 棋盤 (n≤8),# 為可放區域,. 為禁區。放 k 個棋子 (k≤n),任意兩子不同行不同列。求方案數。 DFS 回溯 按行遞歸,每行選擇
HDU 矩陣快速冪:求 Tr(A^k) % 9973
問題描述 給定 n×n 矩陣 A (n≤10),求其 k 次冪 (k<10⁹) 的跡(主對角線元素和)模 9973。 矩陣快速冪模板 struct Mat {
BZOJ 1127 [POI2008] KUP:單調隊列優化二維子矩陣和查找
問題描述 N×N 矩陣,找一個子矩陣使其元素和在 [K, 2K] 之間。N ≤ 2000, 元素值 ≤ 2000。 核心結論 若存在元素值 ∈ [K, 2K]
UVA Live 4636:邏輯推理求最少立方體數(正視圖+側視圖)
問題描述 等大立方體堆疊。給定正視圖(C 列高度)和側視圖(R 行高度)。每個立方體只能放地面或另一立方體正上方。求最少立方體數。 核心邏輯 正視圖給出每列最
HLJ OJ 1214 Around the World:SPFA 判斷圖連通性(油箱容量限制)
問題描述 N 城市 (1 為起點),M 條雙向路,每條路耗油 c。油箱容量 V,只能在城市加滿油。問能否從 1 出發走遍所有城市(可重複經過)。 建模與算法
C++ 源文件編碼批量轉換:GBK 轉 UTF-8 (Visual Studio 專用工具)
背景 VS 默認保存為 GBK,但跨平台/現代編譯器偏好 UTF-8。手動另存為極其繁瑣,需批量轉換工具。 工具原理 遞歸掃描指定目錄下所有 .cpp、.h
C/C++ CGI 程序開發入門:從 Apache 配置到調用系統命令
什麼是 CGI Common Gateway Interface,HTTP 服務器與外部程序交互的標準接口。程序運行在服務器上,通過標準輸入/輸出、環境變量傳遞
LeetCode 148 Sort List:鏈表歸並排序(O(n log n) 時間 O(1) 空間)
問題描述 對單鏈表進行排序,要求 O(n log n) 時間、O(1) 額外空間。 歸並排序遞歸實現 快慢指針找中點,斷開成兩半。 遞歸排序左右兩半。 合併
POJ 2387:Bellman-Ford 判斷負環(蟲洞時間旅行)
問題描述 N 個星球,M 條雙向路(耗時正),W 個單向蟲洞(耗時負,可回溯時間)。問是否存在從某星球出發經路徑回到原點且總耗時 < 0(即負環)。 Bell
九度 OJ 1108:棧模擬(入棧/出棧/查詢棧頂)
問題描述 模擬棧操作: PUSH x:壓入 x POP:彈出棧頂(若非空) TOP:輸出棧頂值(若空輸出 E) 代碼實現 #include #include
HDU 4313 Matrix:最小生成樹思想分離機器城市
問題描述 N 城市,N-1 條邊構成樹。K 個城市有機器。需刪除一些邊使任意兩機器城市不連通,每條邊刪除需時 z,一次只能刪一條,求最小總時間(即所需刪除邊權值