↓快轉到主要內容

Number-Theory

LeetCode 4098: Minimize the Maximum Value of GCD-Connected Array
·2 分鐘
LeetCode Medium Math Number-Theory Greedy
LeetCode 4098 解題筆記:value 的最小質因數 p 決定一切:後一個最小是 value + p,之後都是偶數每次加 2;左邊可行的條件是 value - p >= 2 * index
Number Theory 數論
·4 分鐘
演算法 Math Number-Theory Prime Sieve Union-Find Gcd
GCD、判斷質數、埃氏篩 / 線性篩 / 最小質因數(SPF)、質因數分解後用 Union-Find 連起來,以及用質因數的最後出現位置切陣列
LeetCode 4081: Prime Subset Selection II
·2 分鐘
LeetCode Hard Knapsack-Dp Number-Theory
LeetCode 4081 解題筆記:篩出質數後做 0/1 背包,dp[j] 是湊出 j 的最少個數;質數由大到小放,個數一樣時新的組合開頭比較小,所以用 <= 更新就是字典序最小
LeetCode 2584: Split the Array to Make Coprime Products
·2 分鐘
LeetCode Hard Math Number-Theory Sieve Hash-Table Array
LeetCode 2584 解題筆記:兩段乘積互質 ⇔ 沒有質因數同時出現在兩段;記下每個質因數最後出現的 index,從左往右擴張 reach,reach == i 時就能在 i 後面切
LeetCode 2761: Prime Pairs With Target Sum
·1 分鐘
LeetCode Medium Math Number-Theory Sieve Enumeration Array
LeetCode 2761 解題筆記:篩出 < n 的質數,x 從小到大、只看到 n / 2,x 和 n - x 都是質數就是一對
LeetCode 2523: Closest Prime Numbers in Range
·1 分鐘
LeetCode Medium Math Number-Theory Sieve Array
LeetCode 2523 解題筆記:篩出範圍內的質數,相鄰的兩個質數才可能是最接近的;也可以從 left 往右試除,找到差是 2 的雙生質數就停
LeetCode 1998: GCD Sort of an Array
·2 分鐘
LeetCode Hard Math Number-Theory Union-Find Sieve Sorting Array
LeetCode 1998 解題筆記:同一個連通塊裡的數可以任意交換;用 SPF 把數字跟質因數合併,排序後每個位置的新舊數字在同一組就能排好
LeetCode 1627: Graph Connectivity With Threshold
·1 分鐘
LeetCode Hard Math Number-Theory Union-Find Array
LeetCode 1627 解題筆記:不用兩兩算 GCD;對每個 z > threshold,把 z 的所有倍數連起來,總共 O(n log n) 次合併
LeetCode 3984: Divisible Game
·2 分鐘
LeetCode Medium Dynamic-Programming Kadane Math Number-Theory Enumeration
LeetCode 3984 解題筆記:k 是合數時,換成它的質因數只會更好(能整除的更多、k 更小),所以只要試每個數的質因數加上 2;每個候選 k 跑一次 Kadane
LeetCode 3918: Sum of Primes Between Number and Its Reverse
·1 分鐘
LeetCode Medium Math Number-Theory
LeetCode 3918 解題筆記:把 n 反轉,範圍是 [min, max],逐一試除判斷質數加總;判斷整除要用 %,不要比較 // 和 /
LeetCode 2413: Smallest Even Multiple
·1 分鐘
LeetCode Easy Math Number-Theory
LeetCode 2413 解題筆記:lcm(2, n);n 是偶數就是 n,奇數就是 2n
LeetCode 2709: Greatest Common Divisor Traversal
·2 分鐘
LeetCode Hard Math Number-Theory Union-Find Sieve Gcd Array
LeetCode 2709 解題筆記:任兩個 index 都能互通 ⇔ 全部在同一個連通塊;用 SPF 分解質因數,數字跟它的質因數在 Union-Find 裡合併;1 要特別處理