题目要求
分析
这题我做的很暴力,就直接建一个二维数组,模拟地图。
每次都直接跑一趟数组,看看探测器为圆心的圆内的点有啥,做好计数就行。
参考记忆化搜索,我们可以去防止重复计数。
AC代码(Java语言描述)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int range = scanner.nextInt(), num = scanner.nextInt(), radius = scanner.nextInt(), counter = 0;
byte[][] array = new byte[range][range];
for (int i = 0; i < num; i++) {
int x = scanner.nextInt()-1, y = scanner.nextInt()-1;
for (int j = 0; j < range; j++) {
for (int k = 0; k < range; k++) {
if (array[j][k] == 0 && Math.pow((x-j), 2) + Math.pow((y-k), 2) <= Math.pow(radius, 2)) {
array[j][k] = 1;
counter++;
}
}
}
}
scanner.close();
System.out.println(counter);
}
}