令 ,其中 都是整数,显然有 。令 表示 的最小公倍数,给定两个正整数 和 ,其中 是质数,并且保证 在模 意义下均不为 ,请计算 模 的值。
Constraints
, ,
Solution
在开始推导前先观察两个式子:
形如 的式子具有性质 。
而题目中的式子等价于: ,同样满足这个性质。
(以下集合 均满足 $T\neq \varnothing $)
再由式子:
可以得到:
构造出 满足
得到式子:
又由二项式定理可证:
所以
问题解决,时间复杂度 。
Code
1 |
|
Living is do or die.
令 (1+2)n=e(n)+2⋅f(n) ,其中 e(n),f(n) 都是整数,显然有 (1−2)n=e(n)−2⋅f(n)。令 g(n) 表示 f(1),f(2),⋯,f(n) 的最小公倍数,给定两个正整数 n 和 p ,其中 p 是质数,并且保证 f(1),f(2),⋯,f(n) 在模 p 意义下均不为 0,请计算 ∑i=1ni⋅g(i) 模 p 的值。
T≤210 ,1≤n≤106 ,2≤p≤109+7
在开始推导前先观察两个式子:
gcd(fib(a),fib(b))=fib(gcd(a,b))
gcd(xa−1,xb−1)=xgcd(a,b)−1
形如 f(n)=a⋅f(n−1)+b⋅f(n−2) 的式子具有性质 gcd(f(x),f(y))=f(gcd(x,y)) 。
而题目中的式子等价于: f(0)=0,f(1)=1,f(n)=2f(n−1)+f(n−2),同样满足这个性质。
(以下集合 T 均满足 $T\neq \varnothing $)
再由式子:
lcm(S)=T⊂S∏gcd(T)(−1)∣T∣+1
可以得到:
g(n)=T⊂2[n]∏f(gcdi∈T(i))(−1)∣T∣+1
构造出 h 满足 f(n)=∏d∣nh(d)
得到式子:
g(n)=T⊂2[n]∏⎝⎛d∣gcdi∈T(i)∏h(d)⎠⎞(−1)∣T∣+1=d=1∏nh(d)∑T⊂2 [⌊dn⌋] (−1)∣T∣+1
又由二项式定理可证:
T⊂2[⌊dn⌋]∑(−1)∣T∣+1=−i=1∑dn(−1)i(idn)=1
所以 g(n)=∏d=1nh(d)
问题解决,时间复杂度 O(nlogn)。
1 | #include<cstdio> |