字符串組合生成:位運算與遞歸兩種經典實現
問題描述 給定一個字符串(如 abc),求其所有非空子集組合。例如 abc 的組合為:a, b, c, ab, ac, bc, abc。本文介紹兩種經典實現方法
二叉排序算法:穩定且最小交換次數的排序實現
二叉排序算法簡介 二叉排序算法是一種基於二叉樹結構的排序方法,其核心思想是將數組視為一棵完全二叉樹,通過對樹節點進行特定的比較與交換操作,最終實現數組的有序排列
NYOJ 370 波動序列:貪心 O(n) 求最長交替子序列
問題重述 長度 N ≤ 30000 互不相同整數序列,求最長子序列滿足 a1 a3 ...(波動/交替)。 貪心核心 掃描序列,維護: flag:期望方向
UVA 674 Coin Change:完全背包求硬幣組合數
問題 面值 {1,5,10,25,50} 無限硬幣,求組成金額 n (≤7489) 的方案數。 完全背包 DP dp[i] = 組成金額 i 的方案數。初始 d
UVA 12537 Radiation:雙圓覆蓋房屋統計與二分查找
問題轉化 N 棟房屋坐標,兩核電站 (ax,ay), (bx,by)。查詢 q 次:給定半徑 R1, R2,房屋在圓 1 內得裝備 1 套,在圓 2 內得 1
紅外協議模擬發送源碼分析:定時器中斷驅動波形生成
協議規範 起始碼:低電平 TST_LOW (50×50μs=2.5ms),高電平 TST_HIGH (100×50μs=5ms)。 數據碼:16 位,低電平固
HDU 3468 BFS + 二分匹配:字母間最短路與黃金收集
題目大意 地圖 n×m,字母 A-Z, a-z 為關鍵點,* 為黃金,# 為牆。機器人必須按字母順序 A→B→...→Z→a→...→z 走最短路,每段路徑可拾
二分圖最大匹配(匈牙利算法)C++ 模板代碼
核心數據結構 vector G[N]:左部節點 u 連接的右部節點列表。 int lef[N]:右部節點 v 當前匹配的左部節點(-1 表示未匹配)。 boo
ZOJ 1730 / POJ 1455 Crazy Tea Party:環形逆序最小交換次數公式
問題 n 人圍圓桌,每分鐘可交換相鄰兩人。求完全逆序(鏡像)所需最少分鐘數。 非環形情況 冒泡排序逆序需 n(n-1)/2 次交換。 環形優化 將環切開為兩段:
HDU 1166 敵兵布陣:線段樹區間求和與單點更新
題目操作 數組 a[1..n],支持: Q x y:查詢區間 [x,y] 和。 A x y:a[x] += y。 S x y:a[x] -= y。 E:結束案
ZOJ 3541 The Last Puzzle:區間 DP 求按鈕按壓順序
問題 數軸上 n 個按鈕位置 d[i]、持續時間 t[i]。從任一端點開始,每次走到相鄰未按按鈕,耗時 = 距離。按下後 t[i] 秒自動彈起。求能按下所有按鈕
HDU 3208 區間指數和:容斥原理與整數 k 次方根
問題 對區間 [a,b] 內每個整數 y,表示為 y = x^k(x 最小,k 最大),求所有 k 之和。 數學轉化 對 n,設 num[k] 為 [1,n]
2011 亞洲吉隆坡區域賽隊內訓練賽:六題解法匯總
A. 表達式等價 隨機賦值法:對變量賦隨機值,用棧模擬運算(優先級 + - * ^),多次測試兩表達式值是否恒等。避免符號展開複雜度。 B. 點可見性統計 離散
France 98:世界杯分組賽晉級概率 DP
問題 16 隊世界杯,給定任意兩隊獲勝概率。按固定賽制(1vs2, 3vs4... 勝者進入下一輪),計算每隊最終奪冠概率。 DP 狀態 dp[i][r]:第
NYOJ 370 波動序列:O(n) 貪心求最長交替子序列
問題 給定長度 N ≤ 30000 的互不相同整數序列,求最長子序列使得 a1 a3 ...(波動/交替)。 貪心觀察 只需關注「上升/下降」趨勢轉折。掃描