HDU 3415 環形數列最大 K 子段和:單調隊列優化詳解
問題重述 給定長度為 n 的環形數列,尋找長度不超過 K 的連續子段,使其和最大。輸出最大和、起始位置、結束位置(位置編號 1~n,超過 n 取模)。多解時優先
HDU 2814 斐波那契數列循環節與歐拉函數應用解析
題目背景與核心挑戰 HDU 2814 是一道經典的數論結合遞推數列的問題。給定斐波那契數列 F(n),以及參數 a、b、n、c,要求計算 F(a^b) 的 n
POJ 2253 / ZOJ 1942 Frogger:Floyd 變體求最小最大跳躍距離
題目大意 湖中有 n 塊石頭(n ≤ 200),給定座標。青蛙從 1 號跳到 2 號,可借助其他石頭。青蛙的跳躍能力定義為路徑中**最長單次跳躍**的長度。求從
POJ 3450 Corporate Identity:暴力枚舉 + KMP 找最長公共子串
題目大意 給定 n 個字符串(n ≤ 4000,長 ≤ 220),找最長字符串,使其在**所有**字符串中都出現。若多解,輸出字典序最大者。無解輸出 IDENT
POJ 3461 Oulipo:KMP 算法模板題統計模式串出現次數
題目大意 多測試用例。給定模式串 word(長 ≤ 10000)和文本串 text(長 ≤ 1000000),統計 word 在 text 中出現的次數(可重疊
鏈表中倒數第 k 個節點:快慢指針 O(1) 空間解法
問題描述 給定單鏈表頭指針,找倒數第 k 個節點(k 從 1 開始)。要求一次遍歷、O(1) 額外空間。 快慢指針思想 快指針 fast 先走 k-1 步。
HDU 2844 Coins:多重背包求可湊出的價格數
題目大意 n 種硬幣,面值 A_i,數量 C_i。求 1..m 中能恰好湊出的價格個數。n ≤ 100, m ≤ 100000, A_i ≤ 100000, C
HDU 1258 Sum It Up:DFS 找出所有和為目標值的組合
題目大意 給定目標和 sum 和 n 個數(n ≤ 12,遞減輸入)。找出所有**不同**的組合(子集),使元素和等於 sum。按字典序從大到小輸出(即優先輸出
HDU 1171 Big Event in HDU:多重背包平分設施價值
題目大意 N 種設施,第 i 種價值 V_i,數量 M_i。將所有設施分成兩堆,價值盡量接近,較大值在前。N ≤ 50, V ≤ 50, M ≤ 100,總價值
HDU 1518 Square:DFS 搜索能否拼成正方形
題目大意 給定 n 根木棍,長度已知。判斷能否用所有木棍拼成一個正方形(四邊長度相等,木棍不可折斷)。 DFS + 剪枝策略 總長度必須能被 4 整除,目標
UVA 10735:最大流判定混合圖歐拉回路並輸出路徑
題目大意 給定混合圖(有向邊 + 無向邊),判斷是否存在歐拉回路,存在則輸出任意一條回路(點序列)。 核心理論:歐拉回路存在條件 混合圖有歐拉回路 ⇔ 能為無
二叉樹基本操作完整 C 實現:構建、遍歷、插入、刪除、查詢
數據結構定義 #pragma pack(push, 4) struct _Node { int iValue; struct _Node* pP
HDU 1465 放錯信:錯排公式與大整數計算
題目大意 n 封信裝入 n 個信封,**全部裝錯**(即無信在正確信封中)。求錯誤方式數。n ≤ 20,多測試用例。 錯排數遞推公式 設 D(n) 為 n 個
CF 330C Purification:行列覆蓋的簡單貪心構造
題目複述 n×n 網格,E 為禁選格。每次選一格淨化其行與列。求最少次數覆蓋全網格,輸出方案或 -1。與 CF 329A 同題。 核心邏輯(同 329A)
HDU 1242 Rescue:BFS + 優先隊列求帶權最短路
題目大意 n×m 迷宮(≤200),. 可走,# 牆,x 守衛(經過需 +1 時間),a 天使,r 救援隊。多個 r,單個 a。求從任意 r 到 a 的最短時間
HDU 1015 Safecracker:五重循環暴力破解組合鎖
題目背景 Klein 保險箱:給定目標值 target 和 5-12 個不同大寫字母。需選 5 個不同字母 v,w,x,y,z(對應字母順序 1-26),滿足:
HDU 1238 Substrings:暴力枚舉最長公共子串(含逆序)
題目大意 給定 n 個字符串(n ≤ 100,長度 ≤ 100),找最長字符串 X,使得 X 或其逆序在**每個**字符串中都作為子串出現。輸出最大長度。 暴
圖論經典算法:Dijkstra 最短路徑的兩種 C 實現(鄰接矩陣與鄰接表)
Dijkstra 算法核心思想 單源最短路徑,適用於非負權圖。維護已確定最短路的頂點集合 S,每次從 V-S 中選取距離源點最近的頂點加入 S,並鬆弛其出邊。