算法1

暴力模拟

对于每一天浇水,遍历所有的玉米,判断是否在圆形区域内,如果在则品质加1。

对于每一株需要调查的玉米,直接输出品质即可。

时间复杂度 $O(mn)$,其中 $n$ 为玉米数量,过不了本题。

算法2

前缀和优化

对于每一天浇水,不需要遍历所有的玉米,可以通过前缀和优化。

首先,需要统计出每个位置的玉米数量,可以使用二维前缀和进行预处理。

然后,对于每一天浇水,可以计算出圆形区域内的左上角和右下角位置,再利用二维前缀和计算圆形区域内的玉米数量,最后将圆形区域内的所有玉米品质加1。

对于每一株需要调查的玉米,可以直接查询其品质。

时间复杂度 $O(m+n\log n)$,其中 $n$ 为玉米数量,可以通过本题。

C++ 代码


原文地址: https://www.cveoy.top/t/topic/b293 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录