「输了三把」
「我赢了三把」
「你们两个为什么输赢还不一样」
「因为 GCD,a 和 b 两个正整数,可以任意加减,能得到的最小正整数是 gcd(a,b)」
【暴力循环】 下面这个表保证很多东西不太大,比如:
- 素数距离 :对于 n>3,n<p<2n−2 中至少有一个 p 是素数;109 范围内最大素数距离为 300。给定 l,r,找到 l⩽A⩽B⩽r 且 (A,B)=1,最大化 ∣A−B∣,直接写两重循环,1018 的数据也跑得飞快。
- 素因子个数 :ci,j=gcd(i,a)+gcd(j,b),求从左上走到右下的最小代价。设 A 是最大的与 a 互素的数,B 是最大的与 b 互素的数,从左上到点 (A,B) 的最小额外代价是 (A−1)+(B−1),而且不可能存在超过连续 26 个数字与 a 不互素(因为连续 p 个数必有一个 p 的倍数,查表知 ω(n)=9 时 n 已经远远超过 1e6),即 n−A<25,剩下 25×25 暴力 DP 即可。
- 前缀 GCD 数量 :设 gi 为 ai 的前 / 后缀 GCD,则 gi 的取值只有 O(logV) 种。
- 不超过 n 的所有数的因子总数,lcm 不超过 n 的无序对数,都是 nlogn 量级。
- 递推数列具有模周期性,而且对于斐波那契数列,这个周期不会超过 6× 模数。
- 找出所有正整数 k 使得 {Ai mod k} 恰好有 C 种数值不同的数且每种数的出现次数相等。枚举 k,检查是否合法。考察 k 的上限,枚举到 k 作为模数时,实际上把 0∼V 划分成了 ⌈kV⌉ 个分区:[0,k),[k,2k),…,[⌊kV⌋k,V),按要求每个分区包含的数字不能超过 C 种,即整个 {Ai} 最多只能有 C⌈kV⌉ 种数字,因此 C⌈kV⌉⩾∣A∣⟹k⩽⌈C∣A∣⌉−1V。总的时间复杂度便是严格的 O(NlogN+VC) 。
【枚举约数】 数据范围 104,某中间答案是一个数 x 的约数,枚举这个中间答案以计算最终答案, 特判全部相等(即特判 0 的约数,此时 x=0 什么也没有枚举),比如:
- 模 k 下,a 与 b 的不进位加法等于 c,找出一个 k,或报告不存在。发现 k∣a+b−c。
- bi=aimodk,给定 a 和打乱的 b,找出 k。发现 k∣sum(a)−sum(b)。
- 给定序列及 k,找出所有满足 1⩽x⩽k 的整数 x,使得序列每个数加上 x 后,所有子区间中都存在一个数整除这个区间的每个数。发现序列最小值 aj 满足 (aj+x)∣gcd(ai+1−ai,…)。
- 给定 n,求满足 1⩽m⩽n 且 nmodm 等于 m 的数码和 S(m) 的 m 的数量。发现 S(m) 不多,而且 m∣n−S(m)。
【GCD 性质】 GCD (Greatest Common Divisor) 比较重要的性质:
- (a,b)=(a,a−b),把一群数的 GCD 转化为差分 GCD,适用于整体加减。
- 四个经典的代数性质:设 a=b,gcd(a,b)⩽min{a,b},2max{a,b},3a+b,∣a−b∣,用于估计 GCD 上界。
- 裴蜀定理 Bézout’s Lemma:minax+by=gcd(a,b)。
- 经典数论技巧,设 d=(a,b),a=a1d,b=b1d。
| n | log10n | n! | C(n,n/2) | lcm(1…n) |
|---|
| 2 | 0.30102999 | 2 | 2 | 2 |
| 3 | 0.47712125 | 6 | 3 | 6 |
| 4 | 0.60205999 | 24 | 6 | 12 |
| 5 | 0.69897000 | 120 | 10 | 60 |
| 6 | 0.77815125 | 720 | 20 | 60 |
| 7 | 0.84509804 | 5040 | 35 | 420 |
| 8 | 0.90308998 | 40320 | 70 | 840 |
| 9 | 0.95424251 | 362880 | 126 | 2520 |
| 10 | 1 | 3628800 | 252 | 2520 |
| 11 | 1.04139269 | 39916800 | 462 | 27720 |
| 12 | 1.07918125 | 479001600 | 924 | 27720 |
| 15 | 1.17609126 | 1.31e12 | 6435 | 360360 |
| 20 | 1.30103000 | 2.43e18 | 184756 | 232792560 |
| 25 | 1.39794001 | 1.55e25 | 5200300 | 26771144400 |
| 30 | 1.47712125 | 2.65e32 | 155117520 | 1.444e14 |
| n≤ | max{ω(n)} | max{d(n)} | π(n) |
|---|
| 10 | 2 | 4 | 4 |
| 100 | 3 | 12 | 25 |
| 103 | 4 | 32 | 168 |
| 104 | 5 | 64 | 1229 |
| 105 | 6 | 128 | 9592 |
| 106 | 7 | 240 | 78498 |
| 107 | 8 | 448 | 664579 |
| 108 | 8 | 768 | 5761455 |
| 109 | 9 | 1344 | 5.08e7 |
| 1010 | 10 | 2304 | 4.55e8 |
| 1011 | 10 | 4032 | 4.12e9 |
| 1012 | 11 | 6720 | 3.76e10 |
| 1013 | 12 | 10752 | — |
| 1014 | 12 | 17280 | — |
| 1015 | 13 | 26880 | — |
| 1016 | 13 | 41472 | — |
| 1017 | 14 | 64512 | — |
| 1018 | 15 | 103680 | — |