2019-09-03【高一组】模拟赛 3 &【高二组】模拟赛 2 题解
计算题 1
$$
\begin{align}
ans_x
&=\sum_{i=1}^n (w_i-w_x)^2\\
&=\sum_{i=1}^n(w_i^2+w_x^2-2w_iw_x)\\
&=\sum_{i=1}^{n}w_{i}^2+nw_x^2-2\sum_{i=1}^n{w_i}w_x
\end{align}
$$
先在读的时候处理出 $\sum_{i=1}^{n}w_{i}^2$ 和 $\sum_{i=1}^n{w_i}$,然后对于每个 $x$ 就可以 $O(1)$ 求答案了。
总时间复杂度 $O(n)$。
计算题 2
首先可以分析性质发现对于任意一段能量石,在不使用能力的情况下无论怎么合并答案都是不变的,于是就可以递推了。
设:
$f[i][0]$ 表示不使用能力时用 $1\sim i$ 号能量石消耗的最小能量。
$f[i][1]$ 表示正在使用能力时用 $1\sim i$ 号能量石消耗的最小能量。
$f[i][2]$ 表示已使用完能力时用 $1\sim i$ 号能量石消耗的最小能量。
则:
$f[i][0]=f[i-1][0]+a_ib_{i-1}$;
$f[i][1]=\min(f[i-1][0]+ka_ib_{i-1},f[i-1][1]+k^2a_ib_{i-1})$;
$f[i][2]=\min(f[i-1][2]+a_ib_{i-1},f[i-1][1]+ka_ib_{i-1})$。
然后就可以递推了。
时间复杂度 $O(n)$。
构造题 1
求出数列 $a$ 的膜 $n$ 意义下的前缀和 $s_{0 \dots n}$,对于这 $n+1$ 个数,由于只有 $n$ 种取值,由抽屉原理,必有 $2$ 个相等,如果 $s_l=s_r$,那么 $a_{l+1\dots r}$ 这段数的和就是 $n$ 的倍数。
时间复杂度 $O(n)$。
构造题 2
首先如果在 $i$ 位置 $+A$ 或 $-B$,最后的和就会加 $(n-i+1)\times A$ 或减 $(n-i+1)\times B$。
然后可以发现每个数不是 $+A$ 就是 $-B$,于是可以先假设全部 $+A$,得到 $y=nx+\frac{n(n-1)}{2} \times A$。
然后 $y$ 一定是大于等于 $m$ 的,而大的原因就是部分应该减掉的 $B$ 变成了加 $A$。
而这样要改为 $-B$ 相当于 $-(A+B)$。
于是可以求出 $num=(y-m)/(A+B)$。
对于 $i$ 位置,对 $num$ 的贡献是 $n-i+1$。
然后将 $i$ 从前往后遍历一遍就行了。
时间复杂度 $O(n)$。
数学题 1
三种方法:
1. 打表 $24$ 种即可
2. 暴力搜索即可
3. 找规律即可
数学题 2
由题意,我们可以整理式子,先移项再平方得:
$$
\displaystyle \sqrt{x - \sqrt{n}} + \sqrt{y} - \sqrt{z} = 0
$$
$$
x - \sqrt{n} =z+y-2\sqrt{yz}
$$
$$
x-y-z=\sqrt{n}-2\sqrt{zy}
$$
要保证等式成立,右边的无理项必须为 $0$。
所以可以得到:
$$
n=4zy
$$
我们可以先把 $n$ 除以 $4$,再从枚举 $n$ 的约数,满足条件就计入答案就可以辣~~
时间复杂度 $O(T\sqrt{n})$。