HDU 2117 Just a Numble:模擬除法求小數點後第 m 位
問題本質 求 1/n 小數點後第 m 位數字。n≤10^7, m≤10^5。直接模擬手算除法:余數乘 10 除以 n 得商(即該位數字),余數繼續循環。 算法
九度 OJ 1541 二叉樹旋轉操作:父節點查詢與子樹大小維護
操作定義 左旋:x 是父節點 p 的右孩子。x 的左孩子變為 p 的右孩子,p 變為 x 的左孩子。 右旋:x 是 p 的左孩子。x 的右孩子變為 p 的左孩
模逆元求解:擴展歐幾里得算法解 ax ≡ 1 (mod m)
數學轉化 方程 a*x ≡ 1 (mod m) ⇔ 存在整數 y 使 a*x - m*y = 1。這是裴蹄方程,有解條件 gcd(a,m)=1,解模 m 唯一。
ZOJ 3752 The Three Guys:三人折疊構成最大三角形面積
問題理解 三人各有兩段長度(共 6 段),首尾相連成環。選 3 個切點將環分為 3 段作為三角形邊長,要求每人兩段相鄰(不可拆分)。求最大面積。 暴力枚舉 +
POJ 3469 雙核 CPU:模塊分配最小割建模
問題模型 N 模塊雙核選一運行,核 A 成本 Ai,核 B 成本 Bi。M 對模塊需通信,同核免費,異核額外成本 w。求最小總成本。 最小割建模 源點 S
HDU 1695 GCD:歐拉函數與容斥原理解決互質對計數
問題歸約 求 1≤x≤b, 1≤y≤d 中 gcd(x,y)=k 的對數。令 b=b/k, d=d/k(假設 b≤d),轉化為求 1≤x≤b, 1≤y≤d 互質
HDU 3908 Triple:互質三元組計數與逆向思維
問題轉化 給定數組,求三元組個數使其要么兩兩互質,要么兩兩不互質。總三元組 C(n,3) 減去「混合型」(至少一對互質且至少一對不互質)的個數。 混合型計數
LeetCode Sort Colors:三色旗問題的單次遍歷解法
題目要求 數組含 0(紅)、1(白)、2(藍),原地排序使同色相鄰且順序為 0,1,2。不可用庫排序,追求一趟掃描、常數空間。 解法一:三路快排分區(標準解)
NYOJ 375 突破包圍:雙層 BFS 窮舉所有可能路徑
問題場景 網格地圖中 y 為起點,d 為終點,* 為可拾取道具,x 為障礙。每步最多走 record[k] 步(k 為已拾取道具數)。求是否能到達終點。 雙層
C++ 動態鏈表綜合練習:建立、查找、刪除與有序插入
練習系列概覽 六個遞進項目:尾插建表、查找、刪除首節點、刪除指定值、建有序表、有序插入。每步提供參考代碼,強調指針操作邏輯。 核心代碼模式 data == x
LeetCode 二叉樹層次遍歷:隊列 BFS 實現
題目重述 給定二叉樹根節點,返回逐層節點值列表。例如 {3,9,20,#,#,15,7} 輸出 [[3],[9,20],[15,7]]。 C++ 標準解法 r
C++ 結構體與枚舉應用:點的對稱與距離計算
實驗要求 定義點結構體 Point 和對稱風格枚舉 SymmetricStyle,實現:兩點距離、點到原點距離、點關於 x 軸/y 軸/原點的對稱點。 代碼實
UVA 10006 卡邁克爾數:快速冪判斷合數條件
定義與性質 卡邁克爾數是合數 n,滿足對所有 1 < x < n 有 x^n ≡ x (mod n)。等價於對所有與 n 互質的 x 有 x^(n-1) ≡ 1
有限自動機實現正則表達式匹配:DFA 模擬 abc*d?e
正則表達式與 DFA 模式 abc*d?e 意為:a、b、零或多個 c、零或一個 d、e。構建最小 DFA(5 狀態),狀態轉移表: // 狀態 0..4,輸入
POJ 3155 Hard Life:最大密度子圖與二分查找最大權閉合圖
問題定義 無向圖 n≤100, m≤1000。子圖密度 = 邊數 / 點數。求密度最大的子圖(輸出任意一個)。 二分密度 + 最大權閉合子圖 設子圖點集 V
POJ 1815 友誼:最小點割集與字典序最小解
問題轉化 無向圖中刪除最少頂點使 S、T 不連通。頂點刪除成本均為 1(S,T 不可刪)。多解時輸出字典序最小(按得分規則等價)。 拆點建模最小割 每頂點
POJ 1459 電力網絡:超級源點匯點建模最大流
問題描述 電網包含 N 節點:np 發電廠(供電上限),nc 用戶(需求上限),其餘為中轉站。M 條有容量上限的傳輸線。求用戶最大同時用電量。 標準最大流建模
POJ 1149 PIGS:養豬場最大流建模與 Dinic 算法實現
問題場景 M 個豬圈(初始有豬),N 個顧客依次到來。每位顧客持有部分鑰匙,想買 B 隻豬。顧客到來時打開其鑰匙對應豬圈,可從中挑選購買;離開後豬圈重新上鎖,農