Atcoder Beginner Contest 226 F - Score of Permutations
题目大意
给定一个全排列
P
P
P =
{
p
1..
n
}
\{ p_{1..n}\}
{p1..n}。
现在,有
n
n
n 个人,标号为
1
,
2
,
3
,
4
,
.
.
.
,
n
1,2,3,4,...,n
1,2,3,4,...,n ,每个人手上有一个球。
进行诺干轮操作:
把手上的球给编号为
p
i
p_i
pi 的人。
直到每个人手上拿到初始时刻所持有的球。
对于长度为
n
n
n 的全排列
P
P
P 定义
S
(
P
)
S(P)
S(P) 为操作的轮数。
求
∑
S
(
P
)
k
\sum S(P)^k
∑S(P)k 其中
P
P
P 是长度为
n
n
n 的所有可能的全排列
题解
首先我们定义全错位排列,指的是一个集合X={
p
a
1
,
p
a
2
.
.
p
a
n
p_{a_1},p_{a_2}..p_{a_n}
pa1,pa2..pan }:经过
n
n
n 次操作,集合中的所有人(也就是编号为
a
1
,
a
2
,
.
.
,
a
n
a_1,a_2,..,a_n
a1,a2,..,an )恰好都能拿到最初始持有的球。
经过观察对于一个长度为
n
n
n 序列
P
=
{
p
1
,
p
2
,
p
3
.
.
.
p
n
}
P=\{p_1,p_2,p_3...p_n\}
P={p1,p2,p3...pn} 的全错位排列的排法有
(
n
−
1
)
!
(n-1)!
(n−1)! 种
对于一个任意的排列
P
P
P ,
S
(
P
)
S(P)
S(P) 为
P
P
P 中所有能组成全排列的集合的集合长度(大小)的最小公倍数。比如 排列 2 3 1 5 4 ,前三个数字组成了一个大小为 3 的全错位排列集合,后两个数字组成了大小为 2 的全错位排列集合。所以对于
P
=
{
p
1
=
2
,
p
2
=
3
,
p
3
=
1
,
p
4
=
5
,
p
5
=
4
}
P=\{p_1=2,p_2=3,p_3=1,p_4=5,p_5=4\}
P={p1=2,p2=3,p3=1,p4=5,p5=4} ,
S
(
P
)
=
l
c
m
(
2
,
3
)
=
6
S(P)=lcm(2,3)=6
S(P)=lcm(2,3)=6,所以我们现在可以求给出任意一个
P
P
P 的
S
(
P
)
S(P)
S(P) 。
定义
D
P
[
i
]
[
j
]
DP[i][j]
DP[i][j] 为取长度为
i
i
i 操作次数为
j
j
j 的序列排列方法数。
考虑转移方法,在当前状态下,再取
x
x
x 个数组成全错位排列,那么就会到达
D
P
[
i
+
x
]
[
l
c
m
(
j
,
x
)
]
DP[i+x][lcm(j,x)]
DP[i+x][lcm(j,x)] 那么这两个状态之间存在怎样的数量关系呢?
首先,长度为
x
x
x 的全错位排列有
(
x
−
1
)
!
(x-1)!
(x−1)! 种,而且,这
x
x
x 个数可以在对应的剩余数字
n
−
i
n-i
n−i 个里面取。但是,每次再取
x
x
x 个数时,必须定一个数是必须要取的,不然会造成重复。比如
n
=
=
5
n==5
n==5 的情况下
D
P
[
3
]
[
2
]
DP[3][2]
DP[3][2] 中 有一种排列方法 2 1 3 那么当
x
=
2
x=2
x=2 这种方法可以变成 2 1 3 4 5,当
D
P
[
2
]
[
2
]
DP[2][2]
DP[2][2] 中,有一种排列方法 2 1,如果不限定一个数为必取(比如 3)那么
x
=
2
x=2
x=2 时,DP[4][2] 中会有 2 1 _ 5 4。此时这个方法最终也会变成 2 1 3 5 4,造成了重复。所以转移时,我们考虑当前一定有一个数一定在新增的
x
x
x 个数之内。
D
P
[
i
+
x
]
[
l
c
m
(
j
,
x
)
]
+
=
(
D
P
[
i
]
[
j
]
∗
C
n
−
i
−
1
x
−
i
∗
(
x
−
1
)
!
)
DP[i+x][lcm(j,x)]+=(DP[i][j]*C_{n-i-1}^{x-i}*(x-1)!)
DP[i+x][lcm(j,x)]+=(DP[i][j]∗Cn−i−1x−i∗(x−1)!)
然后枚举所有的
i
,
j
,
x
i,j,x
i,j,x 就可以了,注意
m
a
x
(
j
)
=
200000
。
max(j)=200000。
max(j)=200000。
官方题解 ||我的代码
Atcoder Beginner Contest 226 F - Score of Permutations
最新推荐文章于 2024-06-04 22:50:27 发布