A
考虑质因数分解定理,只有 \(2\) 这一个偶因子,然后讨论 \(2\) 的个数即可。
B
先排序,确定序列的左右端点 \(l,r\) ,中间的随便选不会影响答案,此时 \([l,r]\) 的贡献为 \(a_l \times a_r \times 2^{r-l-1}\) ,拆式子,然后固定 \(r\) ,枚举 \(l\),贡献为 \(a_r \times 2^{r} \sum_{i=1}^{r-1} a_i \times 2^{-l-1}\)。后者在枚举过程中随便那个变量记录即可。
C
\(n,m\) 同阶,不难发现 \(a_i \not = a_{i-1}\) 的情况最多只会出现 \(\log_2 m\) 次。
然后对这种情况出现多少次 DP 即可,设 \(f_{i,j}\) 表示出现了 \(i-1\) 次最后一位是 \(j\) 的方案数。
枚举倍数的时候可以暴力,复杂度为调和级数。
然后枚举 \(f_{i,j}\) 并用组合数计算一下它能放的方案数即可。
总复杂度 \(\mathcal O(n \log^2 m)\)。
E
一棵树,初始全白,你可以任选 k 个点将其染成黑色,然后每过一秒,黑色点沿树边向外扩展一层,直到整棵树都变成黑色,求最短时间
考虑二分答案 \(mid\),然后贪心从叶子节点往上选。
剩下的就是一些细节问题。
dfs 的时候存一个里这个点的最远的黑点距离 \(max\) 和最近的黑点距离 \(min\),如果 \(max + min < 2mid\) ,那么它们之间的点都可以互相覆盖到,然后回溯上传只需要上传 \(min + 1\) ,反之上传 \(max + 1\)。
如果传的数 \(> 2mid\),说明这里必须放一个黑。
如果根节点返回的距离 \(>mid\),根节点也需要放一个黑,因为上面已经没有点让我们贪了。