数学 做题笔记
在这个随笔中,会有笔者的一些做题笔记,包括但不限于数学的思想、解题技巧、代码实现等。
- CF1361B Johnny and Grandmaster
TAG:数学,贪心,暴力
思路:从最大的数开始枚举,如果当前为是偶数,差不变。如果当前为是奇数,则往下找,知道这个 \(p^k\) 被补齐。如果补齐不了,则后面的数一直往小的加。
代码中会有提高代码效率的一行( \(35\) 行) 这一行的 need > n
把往搜索的范围控制在了 \(\log_p n\) 里。
TAG: 数学,乱搞
思路:对于 \(l,r,k\)
令 \(x = \min_{i=l}^{r}a_i\),则
\[\begin{align*}
\sum a_i^2&=\sum (x+ki)^2\\
右式 &= \sum (x^2+2kix+k^2i^2)\\
&= (r-l+1)x^2+xk(r-l)(r-l+1)+k^2\sum i^2\\
&= (r-l+1)x^2+xk(r-l)(r-l+1)+\frac{k^2(r-l)(r-l+1)(2r-2l+1)}{6}
\end{align*}
\]
线段树维护平方和与最小值即可。
- CF1034B Little C Loves 3 II \(\texttt{*2000}\)
TAG: 分类讨论
分类讨论 \(1\) 行、\(2\) 行的情况。代码
首先易得 \(a_1=1,a_n=n\)。然后直接让 \(xi \equiv i+1\pmod n\)。求逆元。