22杭电多校11 Find different(环计数问题)

Posted 吃花椒的妙酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22杭电多校11 Find different(环计数问题)相关的知识,希望对你有一定的参考价值。

题意:给定一个环,环大小为n,环上每个数取值范围为[0,m-1],能通过旋转或者模m意义下整体加任意数得到的环视为同构体,求所以不同的方案数。

Solution:
\\quad 本题有两个同构体条件。先看模意义下加法,可以转化为差分数组。
\\quad 设环上的数为ai,设 b i = a i − a ( i − 1 + m o d ) m o d   m b_i=a_i-a_(i-1+mod)mod\\,m bi=aia(i1+mod)modm。因为整体是个环,所以有 ∑ b i = 0 \\sumb_i=0 bi=0(模m意义下)。只考虑模意义下加法同构的话,也就是差分数组要不同的方案数为 m n − 1 m^n-1 mn1(前n-1个bi任意取)
\\quad 现在加上旋转同构体考虑,通过上面的分析,我们现在只要关注差分数组bi旋转同构即可。
\\quad 我们用传统的环计数方法来推导(菜鸡博主不会用polyaQAQ)。考虑环的循环节,设 f ( i ) f(i) f(i)表示环上最小循环节为i的方案数(含旋转同构,也就是说旋转同构会算重), g ( i ) g(i) g(i)表示存在环循环节为i的方案数(含旋转同构)。比如说123123在g(6)中算,f(6)中不算,f(3)算。
\\quad 设循环节长度为d,则有 n d \\fracnd dn个循环节。设一节的bi数组和为 s ( m o d   m ) s(mod\\,m) s(modm),有 s = ∑ i = 1 d b i s=\\sum_i=1^db_i s=i=1dbi。因为 ∑ b i = 0 ( m o d   m ) \\sumb_i=0(mod\\,m) bi=0(modm),则有 m ∣ s ∗ n d m\\mid s*\\fracnd msdn,其中s的范围为[0,m-1]等价于[1,m](模m意义下)。假如符合上述约束的s有k个,则 g ( d ) = m d − 1 ∗ k g(d)=m^d-1*k g(d)=md1k
k = ∑ i = 1 m [ m ∣ i ∗ n d ] k=\\sum_i=1^m[m\\mid i*\\fracnd] k=i=1m[midn],提出 g c d ( m , n d ) ,设 p = m g c d ( m , n d ) , 设 q = n d g c d ( m , n d ) gcd(m,\\fracnd),设p = \\fracmgcd(m,\\fracnd),设q=\\frac\\fracndgcd(m,\\fracnd) gcd(m,dn),设p=gcd(m,dn)m,q=gcd(m,dn)dn,显然pq互质。
k = ∑ i = 1 m [ p ∣ i q ] = m p = g c d ( m , n d ) k=\\sum_i=1^m[p\\mid iq]=\\fracmp=gcd(m,\\fracnd) k=i=1m[piq]=pm=gcd(m,dn)
\\quad g ( d ) = m d − 1 ∗ g c d ( m , n d ) g(d)=m^d-1*gcd(m,\\fracnd) g(d)=md1gcd(m,dn)。而 g ( d ) = ∑ d ′ ∣ d f ( d ′ ) g(d)=\\sum_d'\\mid df(d') g(d)=ddf(d),由莫比乌斯反演有 f ( d ) = ∑ d ′ ∣ d μ ( d d ′ ) g ( d ′ ) f(d)=\\sum_d'\\mid d\\mu(\\fracdd')g(d') f(d)=ddμ(dd)g(d)
\\quad a n s ( n ) = ∑ d ∣ n f ( d ) d ,去掉旋转同构 = ∑ d ∣ n 1 d ∑ d ′ ∣ d μ ( d d ′ ) g ( d ′ ) = ∑ d ∣ n 1 d ∑ d ′ ∣ d μ ( d d ′ ) m d ′ − 1 ∗ g c d ( m , n d ′ ) ans(n)=\\sum_d\\mid n\\fracf(d)d,去掉旋转同构\\\\=\\sum_d\\mid n\\frac1d\\sum_d'\\mid d\\mu(\\fracdd')g(d')\\\\=\\sum_d\\mid n\\frac1d\\sum_d'\\mid d\\mu(\\fracdd')m^d'-1*gcd(m,\\fracnd') ans(n)=dndf(d),去掉旋转同构=dnd1ddμ(dd)g(d)=dnd1<

以上是关于22杭电多校11 Find different(环计数问题)的主要内容,如果未能解决你的问题,请参考以下文章

杭电多校赛三 Find the answer 离散化

2019杭电多校第三次hdu6609 Find the answer(线段树)

2019杭电多校第九场

2019杭电多校二 F. Fantastic Magic Cube (FWT)

2021杭电多校赛2021“MINIEYE杯”中国大学生算法设计超级联赛签到题5题

2022 杭电多校 第三场 A