A
令 n n n 含有 k k k 个质因子 2 2 2 。
①若
k
≥
2
k \ge 2
k≥2 ,则偶因子多;
②若
k
=
1
k=1
k=1 ,则两者相等;
③若
k
=
0
k=0
k=0 ,则奇因子多。
B
我们将
a
a
a 从小到大排序,不难发现答案是
∑
i
=
1
n
∑
j
=
i
+
1
n
2
j
−
i
−
1
a
i
a
j
+
∑
i
=
1
n
a
i
2
\sum_{i=1}^n \sum_{j=i+1}^n 2^{j-i-1} a_i a_j + \sum_{i=1}^n a_i^2
i=1∑nj=i+1∑n2j−i−1aiaj+i=1∑nai2
对于前面的那一部分,分治计算就好了。
C
令 a m = x a_m=x am=x 的方案数为 f x f_x fx 。
我们将
x
x
x 质因数分解为
x
=
∏
i
=
1
t
p
i
q
i
x=\prod_{i=1}^{t} p_i ^ {q_i}
x=∏i=1tpiqi 的形式,不难发现
f
x
=
∏
i
=
1
t
(
n
+
q
i
−
1
q
i
)
f_x = \prod_{i=1}^t {{n+q_i-1} \choose {q_i}}
fx=i=1∏t(qin+qi−1)
筛出每一个 [ 1 , m ] [1,m] [1,m] 中的质数 p p p ,然后向所有含有至少一个质因子的 p p p 的数产生贡献,最后对于每一个 x x x 求出 f x f_x fx 即可。
时间复杂度 O ( m log m ) O(m \log m) O(mlogm) 。
D
答案为
[
x
m
]
∑
i
=
0
log
2
m
∑
j
=
0
n
(
n
2
j
)
[
x
2
i
×
j
]
[x^m] \sum_{i=0}^{\log_2 m} \sum_{j=0}^{n} {n \choose {2j}} [x^{2^i \times j}]
[xm]i=0∑log2mj=0∑n(2jn)[x2i×j]
直接做是 O ( m 2 log m ) O(m^2 \log m) O(m2logm) 的,可以采用 NTT 优化到 O ( m log 2 m ) O(m \log^2 m) O(mlog2m) 或分治 NTT 优化到 O ( m log m log log m ) ≈ O ( m log m ) O(m \log m \log \log m) ≈ O(m \log m) O(mlogmloglogm)≈O(mlogm) 。
E
考虑二分答案。令当前二分的值为 m i d mid mid 。
为了方便叙述,令关键点分别为 k 1 , k 2 , ⋯ , k t k_1,k_2,\cdots,k_t k1,k2,⋯,kt ,节点 i i i 的权值为 min 1 ≤ j ≤ k d i s ( i , k j ) \min_{1 \le j \le k}dis(i,k_j) min1≤j≤kdis(i,kj) 。我们称一个点不合法,当且仅当该点的权值超过了 m i d mid mid 。
考虑求出至少需多少个关键点才能使得所有点权不超过 m i d mid mid 。
考虑贪心地去选择关键点。我们在树上做深搜,在回溯时做一个判断——若 i i i 到子树内所有不合法点的最大距离为 m i d mid mid ,则在 i i i 上放一个关键点。
现在,关键在于求出,点 i i i 到子树内所有不合法点的最大距离。注意到这是一个单点修改,子树查询的问题,我们可以采用dfs序+线段树来维护。
但是这样的复杂度会多一个 log \log log,我们并不满意。考虑通过递推来代替线段树维护这个值。
令 f i f_i fi 表示点 i i i 到子树内所有关键点的最小距离。回溯的时候:
①若
f
i
≥
m
i
d
f_i \ge mid
fi≥mid ,则点
i
i
i 本身不合法,所以
g
i
:
=
max
(
g
i
,
0
)
g_i := \max(g_i,0)
gi:=max(gi,0)
②若
f
i
+
g
i
≤
m
i
d
f_i + g_i \le mid
fi+gi≤mid ,则点
i
i
i 的子树中所有点均合法,所以
g
i
:
=
−
∞
g_i := -∞
gi:=−∞
③若
g
i
=
m
i
d
g_i = mid
gi=mid ,就在点
i
i
i 上摆一个关键点,令
f
i
=
0
f_i=0
fi=0 且
g
i
=
−
∞
g_i = -∞
gi=−∞
这里 g i = − ∞ g_i=-∞ gi=−∞ 表示在 i i i 的子树中不存在不合法点。
注意,最终还要判断一下 g r o o t g_{root} groot 是否为 − ∞ -∞ −∞ ,如果不是的话,关键点的数量还要加一。若最终关键点的数量不超过 m i d mid mid ,则答案一定不大于 mid \text{mid} mid ,反之同理。
总时间复杂度 O ( n log n ) O(n \log n) O(nlogn) 。
F
咕咕咕