HDU 3874 Necklace:離線處理 + 線段樹維護區間唯一值和
問題描述 數組長度 n ≤ 200,000,m 個查詢 [L,R]。查詢區間內不同值的和(重複值只算一次)。多測試用例。 離線算法思路 將所有查詢按右端點 R
C 語言自增運算符詳解:前綴/後綴、指針解引用與優先級結合性
1. ++i vs i++ ++i:先加 1,值為新值。 i++:值為舊值,後加 1。 int i = 7; i++; // i=8 ++i;
算法課程作業:QuickSort 實現與哨兵選擇策略比較
任務描述 實現快速排序,比較三種哨兵選擇策略的比較次數: 首元素 尾元素 首、尾、中三元素取中位數 輸入文件包含 10,000 個不重複整數,輸出排序過程中
HDOJ 3677 Transportation:拆邊建模 + 最小費用最大流
問題描述 從點 1 向點 N 運送 K 個貨物。每條邊有容量 C 和單位費用 A。若流經流量為 x,費用為 A * x^2。求最小總費用,無法運送則輸出 -1。
C/C++ typedef 完全指南:四大用途、兩大陷阱與與 #define 差異
四大核心用途 類型別名(指針尤佳): typedef char* PCHAR; PCHAR p1, p2; // 兩個 char* 指針 // 對比:char
C/C++ 宏總結:預處理指令、條件編譯、宏技巧與陷阱
預處理指令分類 指令用途 #define定義宏(對象/函數) #undef取消宏定義 #include包含文件 #if / #elif / #else / #
C++ delete 操作符陷阱:數組刪除、野指針與空指針賦值
核心錯誤:delete ptr[] vs delete[] ptr 正確語法為 delete[] ptr。寫成 delete ptr[] 雖能編譯(某些編譯器視
HDU 2616 Kill the Monster:DFS + 剪枝求最少技能數
問題描述 有 n ≤ 10 種技能,每種只能用一次。技能 i 有攻擊力 a_i 和觸發閾值 b_i:當怪物剩餘血量 ≤ b_i 時,傷害翻倍為 2*a_i。怪物
基於 AStyle 為 C/C++ 函數自動添加 Debug 宏頭
需求背景 在大型項目中,為每個函數入口手動添加調試宏(如 DEBUG;)極其繁瑣。利用開源代碼格式化工具 AStyle(Artistic Style)的源碼,在
POJ 3468 線段樹入門:區間加法與區間求和(帶 Lazy 標記)
問題描述 序列長度 n ≤ 100,000,操作 m ≤ 100,000: C a b v:區間 [a,b] 每個元素加 v。 Q a b:查詢區間 [a,b
C/C++ 位域與字節對齊:從 sizeof 實驗理解內存佈局
現象觀察 定義結構體包含位域(unsigned f1:1 等),測試 sizeof 結果: 1~32 個 :1 位域 → sizeof = 4(32 位機下
HDU 1415 Jugs:水壺問題的貪心構造解
問題描述 有兩個水壺,容量分別為 Ca、Cb(Ca ≤ Cb),目標在 B 壺中得到恰好 N 加侖水(N ≤ Cb)。允許操作:裝滿、倒空、倒入另一壺(直到源空
POJ 1038 Bugs Integrated, Inc.:三進制狀態壓縮 DP
問題描述 n × m 網格(n ≤ 100, m ≤ 10),部分格子被佔用。放置 1×3 的「家具」,可橫放或豎放,不可重疊、不可超出邊界、不可覆蓋佔用格。求
HDU 1719 Stone Game:SG 函數與博弈論解析
問題描述 有 n 個箱子,第 i 個箱子容量 s_i,當前石子數 c_i。雙方輪流選一個箱子放入石子,放入數量不得超過當前石子數的平方,且總數不超過容量。無法操
TopCoder SRM 222 Div2 GroceryBagger:STL map 統計物品類型
問題描述 給定袋子強度 strength(每袋最多裝 strength 件同類物品)和物品類型列表 itemType,求最少需要多少個袋子。同類物品可裝在同一袋
HDU 1370 Biorhythms:中國剩餘定理(CRT)經典應用
問題描述 給定三個週期:體力 23 天、情緒 28 天、智力 33 天。已知第 d 天三個週期的相位分別為 p, e, i(即距離上一個峰值的天數)。求從第 d
UVA 10791 Minimum Sum LCM:質因數分解求最小和
問題描述 給定正整數 n,找到一組正整數使其最小公倍數為 n,且這組數的和最小。輸出該最小和。n ≤ 2^31-1,多組測試,以 0 結束。 數學洞察 設 n