USACO Name That Number:電話鍵盤映射字典查找
問題描述 標準電話鍵盤數字 2-9 對應字母(如 2:ABC, 3:DEF...)。給定字典文件 dict.txt(含 ~4600 單詞),輸入一串數字(≤12
POJ 1064 Cable Master:二分答案分數化整數避免精度誤差
問題描述 有 N(≤10000)根纜繩,長度以米為單位保留兩位小數(厘米精度)。需切出 K(≤10000)段等長纜繩,長度盡可能長。輸出最大長度(保留兩位小數)
LeetCode Rotate List:鏈表右旋 K 位雙指針法
問題描述 給定單鏈表頭節點 head 和非負整數 k,將鏈表向右旋轉 k 位。即斷開倒數第 k 個節點後的部分接到頭部。k 可能大於鏈表長度。 算法:快慢指針
Codeforces 321A Ciel and Robot:枚舉最後一步判斷可達性
問題描述 機器人從 (0,0) 出發,按指令串 s(U/D/L/R)循環移動。給定目標點 (a,b),問是否能到達。 解法:枚舉前綴步數 設完整指令串位移為
POJ 2299 Ultra-QuickSort:歸並排序計算逆序數
問題描述 給定長度 n < 500,000 的排列,求將其排序所需的最少相鄰交換次數(即逆序數)。多測試用例,n=0 結束。 歸並排序求逆序數 遞歸分解區間
POJ 2774 Long Long Message:後綴數組求最長公共子串
問題描述 給定兩個字符串 A, B,求它們的最長公共子串長度。字符串長度 ≤ 100000。 後綴數組 + Height 數組 將兩字符串拼接:S = A +
POJ 3321 Apple Tree:樹上 DFS 序 + 線段樹/樹狀數組動態維護子樹和
問題描述 樹上 N≤1e5 個節點,初始每節點有 1 個蘋果。操作: C x:翻轉節點 x 蘋果狀態(有→無,無→有)。 Q x:查詢以 x 為根的子樹內蘋果
LeetCode 4Sum:排序雙指針 O(n^3) 優化去重
問題描述 給定數組 num 和目標值 target,找出所有不重複的四元組 [a,b,c,d] 使和為 target。四元組內非遞減,結果不重複。 排序 +
Codeforces Round #304 Div.2 C:Soldier and Cards 模擬與集合去重
問題描述 兩人分 n≤10 張牌(1..n 各一張),輪流出牌比大,大者將兩張牌置於自己牌堆底(先對手牌後自己牌)。一方牌盡則輸。求回合數與贏家,或判定無限循環
FZU 1894:單調隊列維護滑動窗口最大值
問題描述 面試隊列操作: C NAME RP:NAME(RP值)入隊。 G:隊首出隊。 Q:查詢當前隊列最大 RP 值。 多測試用例,以 END 結束每組。
POJ 2003 Hire and Fire:多重鏈表維護組織架構樹
問題描述 動態維護公司層級樹。操作: X hires Y:Y 成為 X 的直接下屬(加在子列表末尾,資歷最低)。 fire X:移除 X。若 X 有下屬,資歷
C++11 手勢識別:跑酷遊戲上下左右滑動判斷與響應
需求背景 跑酷遊戲觸控操作:左/右滑動切換跑道,上/下滑動跳躍/滑鏟(此處簡化為攝像機前後移動)。單點觸控,記錄按下與抬起座標,計算向量判斷方向。 判斷邏輯
Codeforces Round #311 Div.2 A-E 題解匯總
A. Ilya and Diplomas 三類文憑數量 a,b,c,各有最小最大限制,總和固定 n。貪心:優先滿足最小值,剩餘分配給第一類,超過上限則轉給第二類
BNUOJ 1038 Flowers:BFS 統計多邊形內部格子數
問題描述 M x N(≤100)字符網格,* 為多邊形邊界,. 為空格。只能在邊界**內部**的空格種花。內部定義:從該點出發,向上下左右四方向移動,**最終都
HDU 4149 Magic Potion:位運算逐位確定異或鍵值
問題描述 給定 x1..x8 與未知 m 異或後的值 r1..r8,以及 sum(x1..x8) XOR m 的值 r9。求 m。 逐位確定法 m 為 32
Majority Number:Boyer-Moore 投票算法 O(n) 時間 O(1) 空間
問題描述 給定整數數組,找出出現次數超過半數的元素(保證存在)。要求 O(n) 時間、O(1) 額外空間。 算法核心 成對消除不同元素:維護候選者 candi
HDU 4135 Co-prime:容斥原理求區間互素數個數
問題描述 給定整數 n 和區間 [a, b],求區間內與 n 互素的數的個數。多測試用例。 容斥原理轉化 設 n 的質因子為 p_1..p_k。區間 [1,
Codeforces 240F TorCoder:線段樹維護字母統計構造回文
問題描述 長度 n(≤1e5)字符串,m(≤1e5)次操作。每次給區間 [l, r],重排該區間字符使其成為字典序最小的回文串(若無法構成回文則忽略)。最終輸出