HDU 4135 Co-prime:歐拉函數 + 容斥原理
題目大意 給定 A, B, N (1 ≤ A ≤ B ≤ 10^15, 1 ≤ N ≤ 10^9),求區間 [A, B] 中與 N 互質的整數個數。多測試用例
HDU 5154 Harry and Magical Computer:拓撲排序判環
題目大意 有 n 個進程(n ≤ 100),m 個依賴關係 (a,b) 表示 b 必須在 a 之前完成。判斷能否完成所有進程(即有向圖是否為 DAG)。 拓撲
HDU 5155 Harry And Magic Box:組合數 + 容斥原理
題目大意 n x m 矩陣,每格可放寶石或不放。要求每行、每列至少一顆寶石。求放置方案數模 1e9+7。n,m ≤ 50。 容斥推導 先固定行條件:每行至少一
POJ 1062 昂貴的聘禮:最短路 + 等級限制枚舉
題目大意 探險家想用最少金幣買到酋長的允諾(物品 1)。每個物品有價格 P、等級 L、替代品列表(替代品編號 T、優惠價 V)。等級差超過 M 的人不交易。探險
LeetCode Search for a Range:二分查找左右邊界
題目描述 給定升序數組 nums 和目標值 target,找到目標值的起始和結束位置(下標從 0 開始)。若不存在返回 [-1, -1]。要求 O(log n)
字符串全排列 DFS 遞歸生成:字典序輸出完整解法
題目描述 給定由不同小寫字母組成的字符串(長度 1~6,已按字典序排序),輸出所有全排列,按字典序升序,每行一個。 DFS 遞歸生成策略 因輸入已有序,按順序
LeetCode Two Sum:哈希表 O(n) 解法與有序數組雙指針
題目描述 給定整數數組 nums 和目標值 target,找出兩個數的下標(從 1 開始),使其和等於 target。假設恰好有一組解。 方法一:哈希表(通用
POJ 2627 Gopher and Hawks:最短路 + 幾何距離
題目大意 老鼠從洞 1 到洞 2,速度 v,每次在地面停留最長時間 m 分鐘。給定 n 個洞的坐標。老鼠每次飛行距離不超過 v * m * 60 米(題目單位換
C++ explicit 關鍵字:禁止構造函數隱式轉換
隱式轉換問題 若類有一個單參數構造函數(或除第一參數外其餘有默認值),編譯器會自動將該參數類型隱式轉換為該類類型。有時這會導致非預期行為。 示例 class
C++ 文件操作入門:讀寫數據完整範例教學
前言 C++ 通過 `` 標準庫提供文件輸入輸出功能,核心類別:`ofstream`(寫)、`ifstream`(讀)、`fstream`(讀寫)。本文通過兩個
C# 委托與 Lambda 表達式:從匿名方法到內聯代碼
背景 在將 Java 代碼移植到 C# 時,需要將一段可重試的代碼塊傳遞給重試邏輯。Java 使用 Callable<T>,C# 中對應的是委托與
POJ 2289 Jamie's Contact Groups:二分 + 最大流
題目大意 有 n 個人(編號 1..n)和 m 個群組(編號 1..m)。每個人只能屬於一個群組,每個群組可容納多個人。給定每個人可加入的群組集合。求使所有人都
BZOJ 2286 消耗戰:LCA 單調性 + 虛樹 DP
題目大意 給一棵有根樹(n ≤ 500000),m 組詢問,每組給出若干關鍵點(總點數 O(n))。需割掉一些邊使根與所有關鍵點不連通,每條邊有割斷代價,求最小
C++ 模板中 vector 迭代器聲明需加 typename
問題現象 在類模板中聲明 std::vector<Type>::iterator 類型的成員變量時,編譯器報錯:error: need typena
NYOJ 1057 尋找最大數(三):貪心交換策略
題目描述 給定整數 N (≤ 10^18) 和交換次數 K (≤ 100)。每次可交換兩個相鄰數位。最多交換 K 次,求能得到的最大整數。 貪心策略 從最高位
NYOJ 972 核桃的數量:最小公倍數應用
題目描述 小張帶領 3 個開發組,人數分別為 a, b, c(< 100,可能為 0)。要求: 各組核桃數量相同(前提是該組有人)。 組內核桃能平均分配(不可