C++ 模板高級用法全解析:可變參數、仿函數、元編程、智能指針
1. 可變參數模板 解決參數個數、類型不固定的函數封裝問題,遞歸展開參數包。 #include <iostream> #include <ar
LeetCode Valid Sudoku:位運算高效驗證數獨合法性
題目描述 判斷一個 9×9 數獨盤面(部分填充)是否合法。合法條件:每行、每列、每個 3×3 子區塊中,數字 1-9 不重複(空格 . 忽略)。注意:合法不代表
Codeforces 509D Restoring Numbers:構造與數學(GCD 應用)
題目大意 給定 n×m 矩陣 w,判斷是否存在正整數 k 和非負整數數組 a[1..n]、b[1..m],使得: w[i][j] = (a[i] + b[j])
POJ 2431 Expedition:優先隊列貪心解決加油最少停靠次數
題目背景 卡車距離終點 L,初始油量 P。路徑上有 N 個加油站,每站距離終點 dis、提供油量 fuel。卡車每單位距離消耗 1 單位油,油箱無容量上限。求到
HDU 1712 ACboy needs your help:分組背包問題詳解
題目大意 有 n 門課程,m 天時間。第 i 門課程花費 j 天獲得的價值為 A[i][j]。每門課程必須選擇一個天數(或 0 天),總天數不超過 m,求最大總
HDOJ 1159 Common Subsequence:最長公共子序列 (LCS) 經典動態規劃
題目大意 給定兩個字符串 X、Y,求其最長公共子序列(LCS)的長度。子序列不要求連續,只需保持相對順序。多組測試數據,直到 EOF。 動態規劃解法 狀態定義
POJ 3414 Pots:BFS 求解倒水問題最短操作序列
題目背景 擁有兩個容積分別為 A、B 的杯子,允許操作:FILL(i) 裝滿、DROP(i) 倒空、POUR(i,j) 從 i 倒到 j(直到 i 空或 j 滿
POJ 3252 Round Numbers:數位 DP 入門詳解
題目大意 給定區間 [L, R],求區間內「合法數」的個數。合法數定義:其二進制表示中 0 的個數 ≥ 1 的個數(二進制無前導 0)。 核心思路:數位 DP
Codeforces 300 題解分析:A、B、C 三題完整解法
前言 Codeforces Round 300 是一場經典的競賽,包含三道極具代表性的題目。本文將詳細解析 A、B、C 三題的核心思路與代碼實現,幫助讀者掌握分
HDU 2159 FATE:二維完全背包升級經驗與忍耐度權衡
問題描述 需 n 經驗升級,忍耐度 m。k 種怪,每種無限量。殺第 i 種得 a_i 經驗,損 b_i 忍耐。最多殺 s 隻怪。求升級後剩餘最大忍耐度,不可行輸
UVA 1328 前綴周期判斷:KMP Next 數組 O(n) 解法
問題描述 給定長度 n 字符串,對每個前綴 (長度 i≥2),判斷是否為周期串。是則輸出 i 和最大周期數 K。多測試用例,n=0 結束。 KMP Next
CSU 1561 (More) Multiplication:格狀乘法表格精確輸出格式化
問題描述 輸入兩整數 A, B (1~9999),輸出格狀乘法過程表格。格式極其嚴格:邊框、對角線、數字對齊、積的拆分、最終結果環繞顯示。多測試用例,0 0 結
HDU 1180 詭異的樓梯:時間維度狀態 BFS 最短路
問題描述 M×N 地圖 (≤20×20)。『.』走廊、『*』障礙、『|』豎直梯、『-』水平梯、『S』起點、『T』終點。梯子每分鐘翻轉一次。哈利每分鐘移動一格(上
POJ 3122 Pie:二分答案 + 貪心判定最大化派分配體積
問題描述 N 個圓柱派 (高=1,半徑 r_i),F 個朋友 + 自己共 F+1 人。每人分一塊(同一派可切多塊,但每塊必須完整來自某派)。所有人分到體積相等,
CSU 1569 Wet Tiles:BFS 多源擴散模擬漏水面積計算
問題描述 X×Y 地磚網格 (≤1000×1000),L 個漏水源,T 分鐘後到達。水每分鐘向 4 方向擴散一格。W 條內牆阻擋 (端點座標給定,軸平行或 45
CSU 1567 Reverse Rot:字符串反轉 + 循環移位加密模擬
問題描述 給定旋轉步數 N (1~27) 和字符串 (長度 1~40,含大寫字母、下劃線、句點)。先反轉字符串,再按字母表順序循環右移 N 位。字母表:`A-Z
SOJ 3102 第 K 小數:O(n) 選擇算法與 nth_element 實戰
問題描述 給定 n (≤ 2,000,000) 個整數,求第 k 小的數。多測試用例,輸入規模大,需快速 IO 和 O(n) 算法。 算法選擇對比 算法平均