又是一道玄学的题目QwQ。
传送门
题解
首先要一眼看到这题的重点:结果的相对误差不超过$5\%$即可。
所以考虑非完美算法。
首先,对于第$i$个行星,对它有贡献的星球区间是$[1,\lfloor A\cdot i\rfloor]$。设$R=\lfloor A\cdot i\rfloor$。
然后再设一个阈值$S$比如$S=n^{0.4}$。
接下来的操作类似于分块,把区间$[1,R]$分成若干个块,每个块的大小为$S$,剩下的零头暴力搞,对于每一个完整的块,设这个块为$[a,b]$,那么这个块的贡献约等于
这个式子可以构造前缀和来求。
把所有块的贡献加起来,注意下细节,就能过了QwQ。
代码
1 |
|