1. 程式人生 > >BZOJ4833: [Lydsy1704月賽]最小公倍佩爾數

BZOJ4833: [Lydsy1704月賽]最小公倍佩爾數

Problem

傳送門

Sol

容易得到
f n = e n

1 + f n 1 ,
e n 1 = f n
1
+ e n 1 , f 1 = e 1 = 1 f_n=e_{n-1}+f_{n-1},e_{n-1}=f_{n-1}+e_{n-1},f_1=e_1=1
那麼
f n = 2 × i = 1 n 1 f i f n 1 + 1 f_n=2\times \sum_{i=1}^{n-1}f_i-f_{n-1}+1
又有
f n + 1 = 2 × i = 1 n f i f n + 1 f_{n+1}=2\times \sum_{i=1}^{n}f_i-f_{n}+1
相減得到 f n + 1 = f n × 2 + f n 1 , f 1 = 1 f_{n+1}=f_n\times 2 + f_{n-1},f_1=1

有結論 g c d ( a , b ) = 1 gcd(a,b)=1 時,形如 f i = a f i 1 + b f i 2 f_i=af_{i-1}+bf_{i-2} 的數列有性質 g c d ( f i , f j ) = f g c d ( i , j ) gcd(f_i,f_j)=f_{gcd(i,j)}

大概可以這麼證明

l c m lcm 實際上是一個對於質因子的指數取 m a x max 的操作
每個質因子分開考慮,然後最值反演
l c m ( S ) = i p i T S m i n ( T i ) ( 1 ) T + 1 = i T S p i m i n ( T i ) ( 1 ) T + 1 lcm(S)=\prod_{i}p_i^{\sum_{T\subset S}min(T_i)(-1)^{|T|+1}}=\prod_{i}\prod_{T\subset S}p_i^{min(T_i)(-1)^{|T|+1}}
交換順序得到
l c m ( S ) = T S g c d ( T ) ( 1 ) T + 1 lcm(S)=\prod_{T \subset S}gcd(T)^{(-1)^{|T|+1}}
其中 S , T S,T\ne \empty m i n ( T i ) min(T_i) 表示 p i p_i 這個因子的指數最小值

所以
g n = T S f g c d ( T ) ( 1 ) T + 1 = d = 1 n f d T S [ g c d ( T ) = = d ] ( 1 ) T + 1 g_n=\prod_{T \subset S}f_{gcd(T)}^{(-1)^{|T|+1}}=\prod_{d=1}^{n}f_{d}^{\sum_{T\subset S}[gcd(T)==d](-1)^{|T|+1}}