題目鏈接
題目背景
以下為不影響題意的簡化版題目,
題目描述
一個 n×n 的網格圖(標號由 1 開始)上有 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
思路:看探測半徑r中,有多少個點能被探測到,
代碼:
#include<iostream>
#include<cmath>
using namespace std;
int num[123][123] = {0};
int main()
{
int n, m, r, x, y, count = 0;
cin >> n >> m >> r;
while(m--)
{
cin >> x >> y;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
{
double d = sqrt((x - i) * (x - i) + (y - j) * (y - j)); //兩點間距離
if(d <= r) num[i][j]++;
}
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(num[i][j] > 0) count++;
cout << count;
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258519.html
標籤:其他
上一篇:寒假CS每日打卡 Feb.8th
