luogu cover
P3717 [AHOI2017初中组]cover
题目背景
以下为不影响题意的简化版题目。
题目描述
一个n*n的网格图上有m个探测器,每个探测器有个探测半径r,问这n*n个点中有多少个点能被探测到。
输入输出格式
输入格式:第一行3个整数n,m,r
接下来m行,每行两个整数x,y表示第i个探测器的坐标
输出格式:能被探测到的点的个数
输入输出样例
输入样例#1:
5 2 1 3 3 4 2
输出样例#1:
8
说明
1<=n,m<=100
#include <iostream> using namespace std; int main() { bool map[201][201]; int a,b,n,m,r,s=0; cin >> n >> m >> r; for(int i=1;i <= m;i++) { cin >> a >> b; for(int x=a-r;x <= a+r;x++) for(int y=b-r;y <= b+r;y++) if(x >= 1 && x <= n && y >= 1 && y <= n) if(map[x][y] == false && (a-x)*(a-x)+(b-y)*(b-y) <= r*r) map[x][y]=true,s++; } cout << s; return 0; }