BZOJ 3308 「九月的咖啡店」:費用流與數論剪枝深度解析
題目大意 在區間 [1, n] 中選擇若干整數,使任意兩數互質,求這些數的和的最大值。n ≤ 10^5。 核心數論結論(官方題解) 每個質數在最優解中至多出
HDU 1203 經典 01 背包變體:「I NEED A OFFER!」機率 DP 詳細解析
題目背景 Speakless 想申請國外大學,共有 m 所學校,每所學校有申請費用 a_i(萬美元)與錄取機率 b_i。他總預算 n 萬美元。各校錄取獨立互不影
C++ STL priority_queue 完整指南:最大堆與最小堆的實現技巧
前言 在競賽程式設計與演算法面試中,堆是極常用的資料結構。C++ STL 提供的 priority_queue 預設為最大堆(大根堆),即優先級最高(數值最大)
LeetCode 經典題目:驗證回文串 (Valid Palindrome) 完整解析與 C++ 實作
題目大綱 給定一個字串,請判斷它是否為回文串。判斷時僅考慮英數字元(字母與數字),並忽略大小寫差異。空字串視為合法的回文串。 範例說明 A man, a p
UVA 10817:狀態壓縮 DP 教師招聘問題
UVA 10817:教師招聘 題目大意 S 門課程(S ≤ 8)。m 位在職教師(不可辭退),n 位應聘教師。每位教師有工資和可教課程集合。求保證每門課至少有
C++ 大整數乘法實現:模擬手算逐位相乘
C++ 大整數乘法實現 算法原理 模擬手算乘法:反轉字符串,雙重循環逐位相乘累加到結果數組,統一處理進位,最後反轉輸出。 完整類實現 #define _CRT_
HDU 2112 HDU Today:Floyd-Warshall 最短路徑
HDU 2112 HDU Today 題目大意 地圖上有地點及雙向道路(長度 1)。多組查詢,求兩地點間最短距離。地點名為字符串,用 map 映射到整數。 算法
HDOJ 2577 How to Type:鍵盤輸入最少按鍵次數 DP
HDOJ 2577:How to Type 題目大意 輸入字符串(大小寫字母),Shift 單字母大寫,Caps Lock 切換大寫鎖定(結束時必須關閉)。求最
HDU 2795 Billboard:線段樹區間最大值查詢更新
HDU 2795 Billboard 題目大意 h×w 木板,每次放置 1×L 物品(佔一行 L 列)。總是放在最上方能容納的行。輸出行號(1-based),無
UVA 11992 Fast Matrix Operations:二維線段樹區間加/蓋/查
UVA 11992:Fast Matrix Operations 題目大意 r 行 c 列矩陣(r ≤ 20,總元素 ≤ 10^6),支持 4 操作: 1. 子
POJ 1037 A decorative fence:波浪排列 DP + 字典序構造
POJ 1037:A decorative fence 題目大意 1~n 排成波浪序列(a1 a3 ... 或 a2 a4 < ...)。所有合法排列按
POJ 2799 IP Networks:最小公共網絡前綴
POJ 2799 IP Networks 題目大意 給 m 個 IP 地址,求包含它們的最小 IP 網絡(即最長公共前綴)。輸出網絡地址和子網掩碼。 核心算法
LeetCode 209 Minimum Size Subarray Sum:滑動窗口 Java 實現
LeetCode 209:Minimum Size Subarray Sum 題目描述 給定正整數數組和目標 s,找出和 ≥ s 的最短連續子數組長度。不存在返
POJ 3723 Conscription:最大生成樹變體(Kruskal)
POJ 3723 Conscription 題目大意 n 男 m 女,r 條可配對關係,每對有權值 w。選若干對使所有人最多屬於一對,最大化總權值。未配對者權值
POJ 2828 Buy Tickets:線段樹求第 k 空位
POJ 2828 Buy Tickets 題目大意 n 人買票,每人給定位置 pos(0-based,表示他前面應有 pos 個人)和編號 val。從最後一人開