【题解】Cyclic GCDs
\(\texttt{Dwango Programming Contest V }\text{Cyclic GCDs}\)
有 \(n\) 个点,给定每个点的权值 \(a_i\)。
\(1,2,\cdots,n\) 的排列 \(p\) 表示点 \(i\) 向点 \(p_i\) 连了一条边,这样形成了若干个简单环,每个简单环的权值定义为环上最小的点的权值,一张图的权值定义为所有环的权值的乘积。遍历所有 \(1,2,\cdots,n\) 的排列得到若干个图,所有形成了 \(k\) 个简单环的图的权值和记为 \(b_k\)。
求 \(\gcd(b_1,b_2,\cdots,b_n)\),答案模 \(998244353\)。
有引理:\(P,Q\) 是整系数多项式,用 \(w(F)\) 表示多项式 \(F\) 的所有系数的 \(\gcd\),则 \(w(PQ) =w(P)w(Q)\)。
设 \(\hat P=P/w(P),\hat Q=Q/w(Q)\),只需证
用反证法。假设存在质数 \(p\) 使得
考虑 \(\hat P\hat Q\) 最高项的系数,由 \(\hat P\) 和 \(\hat Q\) 最高项系数相乘而来,由于 \(p\) 是质数,必然有一个多项式最高项的系数为 \(p\) 的倍数,不妨设它为 \([x^L]\hat P\),则
如此迭代下去。由于每次有一个多项式的最高项次数会降低 \(1\),因此迭代有限次后,必然会有一个多项式成为零多项式,考虑这个零多项式最初的状态,每项的系数均为 \(p\) 的倍数,与 \(w(\hat P)=w(\hat Q)=1\) 矛盾。引理得证。
回到本题,先把 \(a_i\) 从小到大排序,设 \(dp_{i,j}\) 代表前 \(i\) 个数分成 \(j\) 个环的价值之和。有转移方程
设多项式 \(f_i(x)=\sum dp_{i,j}x^j\),于是
根据引理,答案即
\(\square\)