一、分析
- 莫比乌斯反演
- Polya计数
- 欧拉函数
- 矩阵乘法
- 特征根与通项公式
- 组合数学
- 逆元相关
出题人太厉害了!这道题真的是数学大融合啊!各种数论算法一起上场。。。。
二、求mm
是指有多少种不同的珠子。
如果不要求三个数的 gcdgcd 等于 11 ,那么
就是在 aa 个数中取出
个数( 33 个数可以相同,但像
和 213213 这两种只能算一种方案)的方案数。
也就是:
m=a×(a+1)×(a+2)6m=a×(a+1)×(a+2)6
。
下面都把 x×(x+1)×(x+2)6x×(x+1)×(x+2)6 记做 r(x)r(x) 。
如果要求三个数的 gcdgcd 等于 11 ,则方案数等于:
这是一个明显的莫比乌斯反演!
整理后得到:
上式=∑i=1a∑j=i+1a∑k=j+1a∑d|gcd(i,j,k)μ(d)上式=∑i=1a∑j=i+1a∑k=j+1a∑d|gcd(i,j,k)μ(d)
=∑d=1a∑i=1,d|ia∑j=i+1,d|ja∑k=j+1,d|kaμ(d)=∑d=1a∑i=1,d|ia∑j=i+1,d|ja∑k=j+1,d|kaμ(d)
=∑d=1a{
r(⌊ad⌋)×μ(d)}=∑d=1a{
r(⌊ad⌋)×μ(d)}
用 107107 的复杂度预处理 μ(d)μ(d) 的前缀和后,就能在 a−−√a 的时间内求出 mm 了。
三、主要思想
如果不考虑相邻的两个珠子是否相同,则根据Polya计数,可以得到答案为:
而如果相邻的两个珠子必须不同,那么