HRBUST 1328 相等的最小公倍數:篩法與素因子分解應用
題目大意 判斷 A_n(1 到 n 的最小公倍數)是否等於 A_{n-1}。輸入多組測試,每組一個 n,輸出 YES/NO。 數學洞察 A_n = lcm(1,
HDU 1282 回文數猜想:字符串翻轉相加迭代求回文(大數模擬)
給定整數,反轉相加,重複直到得回文數。記錄每步結果。可用字符串模擬大數加法。 字符串大數加法流程 反轉字符串 reverse(s.begin(),s.end
HDU 1228 A + B:英文數字詞轉整數相加(map 字符串映射)
輸入兩個英文數字詞組成的加法式(如 one+two=three 但實為 one+two),輸出數值和。數字詞:zero~nine。 map 映射解法 map
POJ 1182 食物鏈:帶權并查集維護三類關系(同類/捕食/被捕食)
三類動物 A,B,C 成環捕食:A→B→C→A。N 個動物,K 句話:1 x y 同類,2 x y x 吃 y。判斷假話數(衝突、編號越界、自食)。 帶權并查
UVA 11462 Age Sort:計數排序解決百萬級年齡排序(內存限制 2MB)
輸入 n (≤2,000,000) 個年齡 (1~99),升序輸出。內存限制 2MB,無法全量讀入內存排序,必須用計數排序。 計數排序邏輯 開啟 count
C++ string 陷阱:結構體 malloc 未調用構造、c_str() 生命週期、字面值非 string 類型
STL string 用起來方便,但有幾個隱蔽陷阱,稍不注意導致崩潰或邏輯錯誤。 陷阱 1:malloc 分配含 string 結構體未調用構造函數 app_
POJ 1598 Excuses, Excuses!:關鍵詞匹配計數找最差藉口
給 K 個關鍵詞(小寫字母),E 條藉口(含標點、大小寫)。統計每條藉口中關鍵詞出現次數(作為單詞,邊界為非字母),輸出次數最多的藉口(可多條)。 解題邏輯
NYOJ 327 親和串:KMP 算法判斷循環同構(s1+s1 包含 s2)
判斷 s2 是否為 s1 的循環移位子串。即:s1+s1 中是否包含 s2。KMP 算法 O(n+m) 求解。 KMP 核心 next[] 數組:模式串最長
HDU 1408 鹽水的故事:天花板函數 ceil 應用與模擬
鹽水濃度 v%,每滴水稀釋一次,求濃度降至 d% 以下所需滴數。公式:v * (1 - 1/(i+1))^k ≤ d,但題目實為簡單模擬:每滴水濃度乘以 (1
Java 自底向上風格:井字棋遊戲完整實現(控制台交互)
3×3 棋盤,雙方輪流落子(o/x),顯示局面,檢查勝利條件(行/列/對角線三連),平局判斷。 核心類設計 MyChess:char[][] data 棋盤
Java 測試驅動開發:矩形交集與並集計算(坐標系統處理)
輸入兩個矩形(各由兩對角點坐標給出,順序不定),輸出交集矩形(不存在則輸出「不存在」)和並集矩形。坐標系:左上角 (0,0),x 向右增,y 向下增。 核心邏
Java 面向對象設計:開關控制燈泡的鬆耦合實現(觀察者模式雛形)
3 個開關控制 3 個燈泡:a 控 x,b 控 x,y,c 控 x。一個開關可控多燈,一燈可被多開關控制。按下開關翻轉所控燈泡狀態。 鬆耦合設計 Light
Java 設計模式:單例模式限制實例數量(最多兩個)與忙閒狀態管理
日志系統 MyLog 採用單例模式,最多兩個實例 a、b。getInstance() 返回空閒實例,均忙則返回 null。實例有 busy 狀態,use() 設
CodeChef Sums in a Triangle:三角形最大路徑和(自底向上 DP)
數字三角形,從頂點走到底邊,每步只能走左下或右下,求最大路徑和。行數 <100,測試用例 ~1000。 自底向上 DP 從倒數第二行開始向上:dp[j] =
NYOJ 741 “數學家”ST:組合數學規律題(組合數求和)
第二組最大。求方案數。 規律推導 選 i 個蘋果 (i≥2),排序後分割點在 1~i-1 之間,共 i-1 種分法 選 i 個蘋果的方案數 C(n,i) 總
CodeChef Turbo Sort:百萬級整數排序的極速 IO 實現
輸入 t (≤1e6) 個整數 (0~1e6),輸出非遞減序列。關鍵在極速 IO。 方案對比 cin/cout(關閉同步) → 超時 scanf/print
CodeChef Transform the Expression:中綴轉後綴(逆波蘭式)帶括號版
輸入全括號中綴表達式,輸出後綴表達式。如 (a+(b*c)) → abc*+。 棧算法(括號版簡化) 遇運算元直接輸出 遇運算符 + - * / ^ 入棧
HDU 1165 Eddy's Research II:阿克曼函數遞推規律與 O(1) 解法
問題描述 計算阿克曼函數 A(m, n): A(0, n) = n + 1 0) 0) 輸入 m ≤ 3,n < 1,000,000 (m<3) 或 n