A Creative Cutout CodeForces - 933D (计数)

大意:给定$n$个圆, 圆心均在原点, 第$k$个圆半径为$\sqrt{k}$

定义一个点的美丽值为所有包含这个点的圆的编号和

定义函数$f(n)$为只有$n$个圆时所有点的贡献,求$\sum_{k=1}^{n}{f(k)}$

首先注意到每个圆上的点对答案的贡献是相同的

可以得到圆$x^2+y^2=c$上单个点的贡献为

$$\sum _{i=c}^n \sum _{j=c}^i j=\binom{n-c+2}{3}+c\binom{n-c+2}{2}$$

最后再对整个圆形区域求和就行了, 固定$x$, 则上式为$y$的一个六次多项式, 可以$O(1)$求和

所以枚举$x$就可以$O(\sqrt{n})$计算了

上一篇:CC++初学者编程教程(6) 配置WindowsXP虚拟机与VC6.0


下一篇:MySQL助理配置