POJ 1284 原根個數:歐拉函數 φ(p-1) 直接計算
問題描述 給定奇素數 p,求其原根(本原根)的個數。 數學結論 素數 p 的原根個數恰為 φ(p-1),其中 φ 為歐拉函數。即 p-1 的質因數分解 p-1
POJ 2777 Count Color:線段樹維護顏色集合(位掩碼優化)
問題描述 長度 L(≤10⁵)木板,初始顏色 1。T 種顏色(T≤30),O 次操作(O≤10⁵): C A B C:區間 [A,B] 塗顏色 C P A B
POJ 3468 區間加與區間和:線段樹懶標記入門經典
問題描述 N 個整數(N≤10⁵),Q 次操作(Q≤10⁵): C a b c:區間 [a,b] 每個元素加 c Q a b:查詢區間 [a,b] 和 數值
POJ 2635 尷尬的密碼學家:大數取模與素數篩解法
問題描述 給大整數 K(最多 100 位)和整數 L(≤ 10⁶)。K 是兩個素數乘積。判斷較小素因子是否 < L。若是輸出 BAD p(p 為較小因子),否則
LeetCode 反轉字符串單詞:雙指針原地算法詳解
問題描述 給定字符串 s,按單詞反轉順序。單詞由空格分隔,可能包含多餘空格。輸出單詞間單個空格,首尾無空格。例:the sky is blue → blue i
HDU 3555 Bomb:數位 DP 統計包含「49」的數字個數
問題描述 統計 1 到 N(N ≤ 2⁶³-1)中包含子序列「49」的數字個數。多測試用例 T ≤ 10000。 數位 DP 模板 狀態:dfs(pos, p
C++ 日期工具類:計算星期幾、年間第幾天、判斷閏年
設計目標 輸入年月日,輸出:星期幾(0-6 代表周日-周六)、該日期是年間第幾天、是否閏年。支援輸入驗證。 核心算法 1. 閏年判斷 bool isLeapY
ZOJ 3868 GCD 期望:容斥原理與數論優化完全解析
問題重述 給定 n 個整數 a₁..aₙ(1≤n,k≤10⁶,1≤aᵢ≤10⁶),等概率隨機選取非空子集,求子集 GCD 的 k 次方期望 E。輸出 E × (
ZOJ 3860 找間諜:排序法與異或法雙重解法
問題描述 N 名學生(3≤N≤100),其中 N-1 人 ID 相同,只有 1 個間諜 ID 不同。找出該異常 ID。多測試用例。 解法一:排序法(通用、直觀
LeetCode 位運算三部曲:反轉位元、計算漢明重量、整數反轉
問題一:Reverse Bits(反轉 32 位無符號整數) 輸入 43261596 (二進制 00000010100101000001111010011100
Vim 實戰技巧第 28 期:用行號與模式精準定位範圍
核心概念:地址與範圍 Vim 的 Ex 命令(以 : 開頭)可接受地址指定作用範圍。地址可以是行號、標記、模式或組合,支援偏移量調整。 技巧一:行號作為地址
ZOJ 3864 EXO徽章識別:圖像壓縮與連通分量解法詳解
問題背景 EXO 是一個中韓男子組合,每位成員擁有獨特的超能力徽章。給定 12 張徽章圖像(可任意旋轉),需識別輸入圖像對應的成員。圖像為 N×N 方陣(100
C++11 移動語義最佳實踐:函數返回對象的正確姿勢
核心結論 在 C++11 及以上標準中,函數返回局部對象時直接返回即可,無需顯式使用 std::move。編譯器會自動應用返回值優化(RVO/NRVO)或移動構
LeetCode 尋找峰值元素:二分查找與線性掃描解法詳解
問題描述 峰值元素是指其值嚴格大於左右相鄰元素的元素。給定一個輸入數組 nums,其中任意相鄰元素不相等(nums[i] ≠ nums[i+1]),請找出任意一
LeetCode 191 Number of 1 Bits:漢明重量 (位運算技巧)
問題描述 輸入無符號 32 位整數,返回其二進制表示中 1 的個數(漢明重量)。 方法一:逐位檢查 迴圈 32 次, i) & 1 或 n & (1u <<
LeetCode Sort Colors:荷蘭國旗問題 (雙指針/三指針)
問題描述 給定陣列 nums,元素只含 0, 1, 2(分別代表紅、白、藍)。原地排序使相同顏色相鄰,順序為 0, 1, 2。不可使用庫排序函數。進階:單趟掃描
ZOJ 3865 Superbot:旋轉控制面板下的機器人最短路 (BFS)
問題描述 N×M 網格(≤10×10),機器人從 @ 出發,目標 $。控制面板有 4 個按鈕:左、右、上、下(初始順序),游標初指向「左」。每秒可: 游標左右