project euler 903题解

在ZR见到的这题,严肃研究题解两个多小时

初始转化

首先先对 \(rank(\pi)\) 做一下转换,对于一个排列 \(p\) 的每个位置 \(i\) 计算他只考虑从 \(i\) 往后相比已排好的序列相差多少个,可以列出式子 $$1+\sum\limits_{i=1}^{n} \sum\limits_{j=i+1}^{n} [p_i>p_j] (n-i)!$$
将这个式子带入最终要求的答案式子,适当调整求和顺序,转化成固定 \(i,j\) 且 \(i<j\) 的前提下 $$\sum\limits_{\pi} \sum\limits_{k=1}^{n!} 1+[(\pi^ k)_i>(\pi ^k)_j] (n-i)!$$
不难想到在固定 \(i,j\) 前提下,定义 \(f(x,y)\) 表示 \(\sum\limits_{\pi} \sum\limits_{k=1}^{n!} [(\pi^ k)_i=x][(\pi^ k)_j=y]\)
可以注意到,如果 \(x_1,x_2\) 都不为 \(i,j\) 中的某一个数字时,一定会有 \(f(x_1,y)=f(x_2,y)\),下面给出证明

点击查看证明

定义 \(\sigma\) 表示 \(x_1,x_2\) 的一个置换 (可以理解为 \(p_{x_1}=x_2,p_{x_2}=x_1\))注意到 \(\sigma^2\) 相当于没有变化(不过这其实没什么用就是了),定义一个与 \(\pi\) 共轭的置换 \(\pi'=\sigma \pi \sigma^{-1}\)
那么可以发现 \(\pi'^k=(\sigma\pi\sigma^{-1})^k=\sigma\pi^k\sigma^{-1}\)
这有什么用处呢?不妨设 \((\pi^k)=1,3,4,2,5\) 而 \(\sigma\) 交换的是 \(3,4\) ,也就是 \(1,2,4,3,5\)
那么可以发现 \((\pi'^k)=1,4,2,3,5\) 成功交换了使得 \(1,2\) 位置进行了交换!
以此类推,可以证明出上面的结论

于是可以发现要算的东西只有 \(A=f(i,j),B=f(j,i),C=\sum\limits_{x\neq j} f(i,x)=\sum\limits_{x\neq i} f(x,j),D=\sum\limits_{x\neq i} f(j,x)=\sum\limits_{x\neq j} f(x,i)\) 以及除了上述情况之外的情况
那么此时的答案可以计算为 \(B+\frac{i-1+n-j}{n-2}C+\frac{j-2+n-i-1}{n-2}D+\frac{(n!)*(n!)-A-B-2*C-2*D)}{2}\)
此处分母上 \(n-2\) 的原理是 \(C,D\) 中除了 \(f(x,y)\) 出现 \(x=y\) 的情况之外,剩余次数都是完全相同的,所以分母是 \(n-2\)
首先定义 \(H_n=\sum\limits_{i=1}^n \frac{1}{i}\)

C,D的计算

先考虑较为简单的 \(C\) 如何计算
对于 \(C\) 可以认为它实际上是 \(\sum\sum\limits_k [(\pi^k)_i=i] -A\) 而前半部分可以认为是 $$\sum\limits_{L=1}^n \dbinom{n-1}{L-1} (L-1)!(n-L)!\frac{n!}{L}$$ 注意到 \(\sum\limits_{L=1}^n \dbinom{n-1}{L-1} (L-1)!(n-L)!=(n-1)!\) 所以实际上就是 \((n-1)!n!H_n\)

同样的对于 \(D\) 进行考虑 \(D=\sum\sum\limits_k[(\pi^k)_i=j] -B\) 这里要求 \(i,j\) 在同一个置换环中,可以写作 $$\sum\limits_{L=2}^n \dbinom{n-2}{L-2} (L-1)!(n-L)!\frac{n!}{L}$$ 同样有上面的合并,可以得到 \((n-2)!n!(n-H_n)\)

B的计算

与 \(D\) 相同的,\(i,j\) 必须在同一个置换环中,更进一步的,要求 \(i,j\) 之间的距离相同,即$$B=\sum\limits_{L=1}^{n/2} \frac{(n-2)!}{(L-1)!(L-1)!(n-2L)!} (L-1)!(L-1)!(n-2L)! \frac{n!}{(2L)}$$
这里这么计算的想法是,将环按照 \(i,j\) 分成两部分,每一部分拼成一条链子,于是就可以计数了,整理可得$$B=(n-2)!n!\frac{H_{n/2}}{2}$$

A的计算

i,j同置换环

这一步的计算是显然的,参考 \(D\) 的过程,写为 \((n-2)!n!(n-H_n)\)

i,j不同置换环

枚举两个环的大小 \(\sum\limits_{x\ge 1,y\ge 1,x+y\le n} \frac{(n-2)!}{(x-1)!(y-1)!(n-x-y)!}(x-1)!(y-1)!(n-x-y)!\frac{n!}{lcm(x,y)}\)
那么现在就只剩下计算 \(\sum\limits_{x+y\le n} \frac{1}{lcm(x,y)}\) 了
考虑莫比乌斯反演 \(\frac{1}{lcm(x,y)}=\sum\limits_{d|gcd(x,y)} \frac{\phi(d)}{xy}\)
经典的,考虑交换求和,也就是 $$\sum\limits_{d} \frac{\phi(d)}{d^2}\sum\limits_{a+b<=n/d} \frac{1}{ab}$$
问题更简单了,只需要计算后面那个式子就行,考虑固定 \(a+b\) 的和并裂项 $$\sum\limits_{s=2}^{m} \sum\limits_{a=1}^{m-1} \frac{1}{a(s-a)}=\sum\limits_{s=2}^m \frac{2H_{s-1}}{s}$$

最终计算

不难发现,上面 \(A,B,C,D\) 和 \(i,j\) 没有任何关系,所以可以将 \(i,j\) 的贡献写为 \(Xi+Yj+Z\) 的形式,之后再固定 \(i\) 并带入到初始的式子中即可

posted @ 2026-11-03 18:27  zyb_123  阅读(2)  评论(0)    收藏  举报