Codeforces 520C - DNA Alignment:貪心構造最大匹配序列
問題描述 給定長度 n 的 DNA 序列 s(字符集 {A,G,C,T})。定義 h(a,b) 為兩序列對應位置相同字符數。p(s,t) 為對所有循環位移的 h
BZOJ 2326 - HNOI 2011 數學作業:矩陣快速冪求大數取模
問題描述 求串聯數字 12345678910111213... 的前 k 位組成的大整數對 m 取模的值。k ≤ 10^18,m ≤ 10^9。 核心觀察:分
LeetCode Single Number:異或與哈希表兩種解法
問題描述 數組中只有一個數出現一次,其餘均出現兩次。找出該單一數。要求線性時間、常數額外空間。 解法一:位運算異或(最優) 利用性質:a ^ a = 0,a
1027 - Colors in Mars:十進制 RGB 轉 13 進制表示
問題描述 火星人用 13 進制(0-9, A-C)表示顏色。輸入三個十進制數(0-168),分別對應 R、G、B。輸出 6 位 13 進制字串(每兩位一色),不
LeetCode 46 - Permutations:全排列生成的兩種經典方法
問題描述 給定無重複元素的數組,返回所有可能的全排列。例如 [1,2,3] 有 6 個排列。 方法一:遞迴交換(回溯) 固定第 i 位,依次與 i..n-1
HDOJ 2454 - Degree Sequence of Graph G:Havel-Hakimi 判斷圖序列
問題描述 給定非負整數序列,判斷是否存在無向簡單圖(無自環、無重邊)使其度序列恰為該序列。多組測資,n < 1000。 解法:Havel-Hakimi 算法
HDU 1269 - 迷宮城堡:Tarjan 算法判斷強連通
問題描述 有向圖 N 點(≤10,000),M 條邊(≤100,000)。判斷圖是否強連通(任意兩點互達)。多組測資,N=M=0 結束。 解法:Tarjan
HDU 5024 - Wang Xifeng's Little Plot:網格中最長單轉彎路徑
問題描述 給定 N×N(N≤100)網格,. 為路,# 為障礙。可從一個 . 走到 8 方向相鄰的 .。求一條路徑,使其包含格子數最多,且路徑中最多只能轉彎一次
HDU 5178 - Pairs:雙指針統計差值不超過 K 的數對
問題描述 給定 n(≤ 100,000)個整數 x[i] 和整數 k,求滿足 i < j 且 |x[j] - x[i]| ≤ k 的數對個數。多組測資(T ≈
HDU 5135:狀態壓縮 DP 求最大三角形面積和
問題描述 給定最多 12 條邊長,每條邊最多使用一次。可組成多個三角形(每個三角形用 3 條邊),求所有三角形面積之和的最大值。三角形面積用海倫公式計算。 解
Codeforces 294A - A and B and Chess:棋子權重比大小
問題描述 給定一個 8×8 的棋盤狀態,大寫字母表白棋,小寫表黑棋。棋子權重:Queen=9, Rook=5, Bishop=3, Knight=3, Pawn
Codeforces 294B - A and B and Compilation Errors:找出兩次修正後消失的錯誤編號
問題描述 給定三組整數序列: 第一組:n 個編譯錯誤編號 第二組:n-1 個編號(比第一組少了一個) 第三組:n-2 個編號(比第二組少了一個)
Codeforces 294C - A and B and Team Training:最多組隊數的貪心數學解
問題描述 有 n 位資深參賽者(XP)和 m 位新手(NB),要組成盡可能多的三人隊伍。隊伍類型只有兩種: 類型 A:1 XP + 2 NB 類型 B
POJ 2488 A Knight's Journey:騎士巡游問題的 DFS 解法詳解
問題描述 騎士厭倦了在標準 8×8 棋盤上來回穿梭,決定在一個較小的矩形棋盤(p 行 × q 列,1 ≤ p·q ≤ 26)上展開一場旅程。騎士的移動規則與國際
Codeforces 294D:A and B and Interesting Substrings - 前綴和 + 哈希優化計數
題目大意 給定 26 個小寫字母的權值(可負),及字符串 s (|s| ≤ 1e5)。求子串 t 的數量,滿足: t 1。 t 內部字母(不含首尾)權
PAT 1019:General Palindromic Number - 任意進制回文數判定
題目描述 給定非負十進制整數 N (≤ 10^9) 與基數 b (2 ≤ b ≤ 10^9),判斷 N 在 b 進制下是否為回文數。輸出 Yes/No 及 b
LeetCode 90:Subsets II - 含重複元素集合的子集生成去重
題目描述 給定可能包含重複元素的整數數組 nums,返回所有可能的子集(冪集)。解集不能包含重複子集。子集內元素非降序排列。 範例:[1,2,2] → [[],
Codeforces 264A Escape from Stones:DFS 模擬區間分割輸出順序
問題大意 初始區間 `[0,1]`。第 `i` 步在當前區間中點放石頭 `i`,然後根據輸入字符串(`l`/`r`)選擇左/右半區間繼續。最終按從左到右順序輸出