zju1041 雷達覆蓋

2021-07-28 04:15:31 字數 1316 閱讀 6635

雷達覆蓋(normal)

time limit:1000ms  memory limit:65536k

total submit:75 accepted:35

description

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

分析:先把不能覆蓋的點排除,然後用叉積判斷覆蓋幾個點。

計算叉積m=(x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)

**

const

maxn=3000;

varx,y:array[0..maxn] of real;

max,p,q,s,sum:longint;

r,m,xi,yi:real;

procedure init;

vari,j:longint;

begin

readln(j);

for i:=1 to j do

begin

readln(p,q);

if sqrt(sqr(p-xi)+sqr(q-yi))<=r then

begin

inc(sum);

x[sum]:=p;

y[sum]:=q;

end;

end;

end;

procedure main;

vari,j:longint;

begin

for i:=1 to sum do

begin

p:=0;q:=0;s:=0;

for j:=1 to sum do

begin

m:=(x[i]-xi)*(y[j]-yi)-(x[j]-xi)*(y[i]-yi);

if m=0 then inc(s);

if m>0 then inc(p);

if m<0 then inc(q);

end;

if s+p>max then max:=s+p;

if s+q>max then max:=s+q;

end;

end;

begin

readln(xi,yi,r);

while not (eof(input)) do

begin

max:=0;

sum:=0;

init;

main;

writeln(max);

readln(xi,yi,r);

end;

end.

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...

51nod 雷達覆蓋

現在有n個雷達。每個雷達的覆蓋區域是乙個正方體,區域用乙個頂點座標p x,y,z 和邊長l表示,p是區域的乙個頂點,整個區域是由p沿x,y,z軸正方向延展l得到的乙個正方體。現在想知道哪些區域是被所有雷達覆蓋到的,計算出這些區域的總體積。收起單組測試資料。第一行有乙個整數n 2 n 1000 表示雷...

zju 1525 Air Raid 最小路徑覆蓋

include includeusing namespace std define max n 121 有向圖最小路徑覆蓋 v 最大匹配數 無向圖最小路徑覆蓋 v 最大匹配數 2。bool map max n max n use max n int path max n bool match int...