Description
请构造若干k叉树,使得每颗均有n+m个叶子,有n个叶子点权为0,m个叶子点权为1,对于非叶子点权为儿子点权的平均数。
问最多构造多少k叉树,使得任意两颗根节点点权不同?
n,m,k<=2000
(n+m-1) mod (k-1)=0
Analysis
思路顺序:
1.问题模型转化成
k
k
叉树
2.注意到根节点权值为
3.注意到
∑ikdep1[i]+∑ikdep0[i]=1
∑
i
k
d
e
p
1
[
i
]
+
∑
i
k
d
e
p
0
[
i
]
=
1
4.想到将根节点的权值用k进制小数表示,形如“
0.z1z2z3z4...,0≤zi<k
0.
z
1
z
2
z
3
z
4
.
.
.
,
0
≤
z
i
<
k
”
5.想到一个权值能被表示成恰好
N
N
个的次幂之和 的 等价条件是
∑zi≤N
∑
z
i
≤
N
(显然)且
∑zi≡N(mod k−1)
∑
z
i
≡
N
(
m
o
d
k
−
1
)
(大概原因是数位上第
i+1
i
+
1
位如果
≥k
≥
k
可以选择进位
zi+1−=k,zi++
z
i
+
1
−
=
k
,
z
i
+
+
,这样
∑zi
∑
z
i
减少
k−1
k
−
1
)
我一步都想不到