實現 strstr():C 語言查找子串的朴素匹配算法
問題描述 實現標準庫函數 `strstr(const char *haystack, const char *needle)`:在字符串 `haystack`
UVA 10718 Bit Mask:貪心位運算構造最大異或值下的最小 M
問題描述 給定 N, L, U (≤ 2³¹-1),求 M ∈ [L, U] 使得 (N | M) 最大,若多解取最小 M。 貪心策略:從高位到低位決定 M
HDU 3328 Flipper:棧模擬翻牌操作與查詢
問題描述 N 堆牌 (初始每堆 1 張),正面朝上(U)或朝下(D)。N-1 次操作,每次從最左或最右堆取出整堆,翻轉順序並翻面,疊到相鄰堆上。最終剩 1 堆。
HDU 3480:DP + 斜率優化求最小分組平方和
問題描述 給定 n 個數 (n ≤ 10⁴),分成 m 堆 (m ≤ 5×10³),每堆代價 = (最大值 - 最小值)²。求總代價最小值。數字可重排,故先排序
UVA 10201 Adventures in Moving - Part IV:動態規劃解決加油最小花費
問題描述 從 Waterloo 到大城市距離 n km (≤10000)。卡車油箱 200L,耗油 1L/km。起始半箱 (100L),到達需至少半箱 (100
二維數組查找:若干有序矩陣中尋找目標值的 O(m+n) 算法
問題描述 m×n 矩陣,每行左→右遞增,每列上→下遞增。判斷目標值 t 是否存在。多測試用例,m,n ≤ 1000。 核心算法:右上角 (或左下角) 搜索 從
POJ 1426 Find The Multiple:同餘定理構造僅含 0/1 的最小倍數
問題描述 給定 n (1 ≤ n ≤ 20000),求最小正整數 m,使得 m 是 n 的倍數,且 m 的十進制表示僅包含數字 0 和 1。最高位必為 1。
ZJUT 1423 地下迷宮:期望 DP + 高斯消元求解線性方程組
問題描述 N×M 迷宮 (≤10×10),. 空地,E 出口,D 起點,X 障礙。DK 記憶喪失,每步等概率隨機選擇可走方向(不撞牆)。求從起點走到出口的期望步
動態網絡流 SGU 438:河流渡河問題的時間擴展網絡與二分求解
問題描述 寬度 W 的河,N 塊石頭 (Xi, Yi) 每塊有容量 Ci(同時容納人數)。M 人在南岸 (y=0) 任意 x 出發,想到北岸 (y=W)。每人每
UVA 562 Dividing Coins:01 背包求最小差值分割
問題描述 給定 n 個硬幣面值,分成兩堆(數量不限),使兩堆價值差的絕對值最小,輸出該最小差值。n ≤ 100,面值 ≤ 500,總和 ≤ 50,000。 核
UVA 11661 Burger Time?:高速公路藥店與餐廳最小距離
問題描述 高速公路長度 L (≤ 2,000,000),字符串 S 描述每個位置:R 餐廳,D 藥店,Z 兩者皆有,. 空地。求餐廳與藥店的最小距離。若有 Z
C++ 連續重複單詞統計:從暴力向量到 O(1) 空間優化
問題描述 從標準輸入讀取字符串序列,找出連續重複次數最多的單詞,輸出該單詞及其最大連續重複次數。標點符號需去除(如 cow, → cow)。輸入例:how no
數組最小交揗次數排序:將 1..n 置換恢復有序
問題描述 給定包含 1 到 n 的一個排列,每次可交換任意兩個元素。求將數組排成 1,2,...,n 所需的最少交換次數。n ≤ 100。 例子:[3,2,1]
UVA 11464 Even Parity:首行枚舉 + 推導驗證解決矩陣奇偶性問題
題目大意 給定 n×n 0/1 矩陣 a,需翻轉若干格子(0↔1)使得每個格子的上下左右四鄰居之和為偶數(邊界格子鄰居較少)。求最少翻轉次數,無解輸出 -1。
UVA 11586 Train Tracks:木軌道能否組成閉環?
問題描述 給定一組木製火車軌道片,每片有兩端連接器:M(公)、F(母)、MM、FF。判斷能否用完所有軌道片拼成一個單純閉環(無分支、無死頭)。條件: M
POJ 1523 SPF:Tarjan 算法求割點與連通分量統計
問題描述 給定一個連通無向圖,求所有割點(關鍵節點),並輸出每個割點移除後圖分裂的連通分量數量(子網數)。節點編號 1..N,N ≤ 1000。經典 Tarja