雷達覆蓋 ssl 1232 計算幾何

2021-07-22 09:12:18 字數 1382 閱讀 7124

以雷達心為圓心的半圓形雷達覆蓋範圍有多個點 雷達可旋轉,求最多覆蓋數(含在邊界的)

列舉點作為雷達的分界線,用叉積判斷左右兩邊點數量的多少,找乙個最優值。

可以先把在半徑之外的點排除

var

x,y:array[1..10000] of longint;

sx,sy:longint;

ans:longint;

nm:longint;

n:longint;

r:real;

procedure

init;

var i,j,k:longint;

begin

readln(sx,sy,r);

if r<=0

then

exit;

readln(n);

nm:=0;

ans:=0;

fillchar(x,sizeof(x),0);

fillchar(y,sizeof(y),0);

for i:=1

to n do

begin

readln(j,k);

if sqrt(sqr(j-sx)+sqr(k-sy))<=r

then

begin

nm:=nm+1;

x[nm]:=j; y[nm]:=k;

end;

end;

end;

procedure

main;

var i,j,k:longint;

l,r:longint;

m:longint;

begin

for i:=1

to nm do

begin

l:=0;

r:=0;

for j:=1

to nm do

begin

m:=(x[i]-sx)*(y[j]-sy)-(y[i]-sy)*(x[j]-sx);

if m>0

then r:=r+1

else l:=l+1;

end;

if lthen l:=r;

if l>ans then ans:=l;

end;

writeln(ans);

end;

begin

init;

while r>0

dobegin

main;

init;

end;

end.

SSL1232雷達覆蓋 normal

以雷達心為圓心的半圓形雷達覆蓋範圍有多個點 雷達可旋轉,求最多覆蓋數 含在邊界的 25 25 3.5 雷達座標與半徑 7 點數 25 28 點座標 23 27 27 27 24 23 26 23 24 29 26 29 350 200 2.0 5 350 202 350 199 350 198 34...

ZJU 1041 SSLGZ 1232 雷達覆蓋

問題描述 以雷達心為圓心的半圓形雷達覆蓋範圍有多個點 雷達可旋轉,求最多覆蓋數 含在邊界的 樣例輸入 25 25 3.5 雷達座標與半徑 7 點數 25 28 點座標 23 27 27 27 24 23 26 23 24 29 26 29 350 200 2.0 多組資料 5 350 202 350...

計算幾何 訊號覆蓋

輸入第一行包含乙個正整數 n,表示房子的總數。接下來有 n 行,分別表示每乙個房子的位置。對於 i 1,2,n,第i 個房子的座標用一對整數 xi和yi來表示,中間用空格隔開。輸出檔案包含乙個實數,表示平均有多少個房子被訊號所覆蓋,需保證輸出結果與精確值的絕對誤差不超過0.01。4 0 2 4 4 ...