Luogu P3717 [AHOI2017初中組]cover
阿新 • • 發佈:2017-08-18
時空復雜度 接下來 pascal adl bool 探測器 begin 思路 true 。
題目背景
以下為不影響題意的簡化版題目。
題目描述
一個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
Solution
水題……
既然是水題,也就沒有多考慮就做了,可能時空復雜度不是最低的,但也不想管那麽多了。(誰叫它數據範圍那麽小)
我的思路,直接讀一個坐標就枚舉網格圖,有被探測器覆蓋的點(不重復)就計數加1
————————分割不完全的分割線————————
以下是pascal代碼:
var n,m,i,j,k,l,r,x,y:longint; b:array[1..100,1..100]of boolean; begin readln(n,m,r); for k:=1 to m do begin readln(x,y);//讀入坐標 for i:=1 to n do for j:=1 to n do//枚舉每個點 if (abs(i-x)*abs(i-x)+abs(j-y)*abs(j-y)<=r*r)and(not b[i,j]) then//看那個點與探測器的距離是否在探測範圍之內(且不重復)begin b[i,j]:=true; inc(l);//計數加一 end; end; writeln(l); end.
Luogu P3717 [AHOI2017初中組]cover