test0911
考试分数为100+24+15+20,没有挂分,但考场写完 \(T1\) 后面的题就没有什么太大思路了
T1
预计:100pts
实际:100pts
显然对于一个选项的贡献为,选的个数 \(\times\) 选的概率,就是 \(a\times \frac{b}{n}\),答案即为 \(\sum_{i=1}^{k} a_i\times \frac{b_i}{n}\),但这容易掉精度,建议最后再除以 \(n\)。
T2
预计:24pts
实际:24pts
打了 \(n^2\) 的和 \(m=0,c=1\) 的,但他们都说 \(\mathcal O(n)\) 的很好想。
\(\mathcal O(n^2)\) 的我们设 \(f_i\) 表示 \(i\) 为分割线时前面的总答案,放的块我们可以看成 \(f_{k+1}=0\) ,所以 \(f_i=\sum_{j=1}^{i-1} f_j\times sum(i-j)\) 其中 \(sum\) 是指一个数小于等于 \(c\) 的约数个数,
我们将上面式子转换一下 \(f_i=\sum_{k=1}^{c}\sum_{j|j\geq 1,jk\leq i} f_{i-jk}\) 可以发现这个dp是可以前缀和优化的,用另一个数组记下 \(\sum_{j|j\geq 1,jk\leq i} f_{i-jk}\) 即可
当 \(m=0,c=1\),可以发现递推式为 \(f_i=\sum_{j=1}^{i-1}{f_j}+1\) 通项就是 \(f_i=2^{i-1}\)
考虑矩阵快速幂,矩阵为 \(24\times 24\) 但直接让矩阵相乘时间复杂度有问题,可以发现这是一个稀疏矩阵,于是我们可以预处理这个矩阵的 \(2^k\),用向量相乘即可
T3
预计:25pts
实际:15pts
打的 \(sub1\) 和 \(sub3\)
将所有点按它与根的距离排序,我们只要考虑每个点到它父亲的距离期望,对于每个点,将之前点再按到这个点的距离排序重新分别计算距离期望即可
T4
预计:20pts
实际:20pts
我们先考虑 \(\mathcal O(n^2\log n)\) 的,枚举前两个点,最后一个点用线段树维护区间最大值即可
可以发现,这种只有 \(n\) 个,我们再考虑每个位置 \(u\),因为要满足 \(j-i\leq u-j\) 即 \(2j-i\leq u\),这样就可以将每个二元组放入线段树中,离线求区间最大值即可

浙公网安备 33010602011771号