雷達覆蓋(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...