description
地鼠家族面臨著乙個新的威脅——獵食者。
地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的(x, y)座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使得老鷹來時,易受攻擊的地鼠數量最少。
input
本題有多組資料。第1行為測試資料組數t(t<=50)。
對於每組資料,第一行4個整數n, m, s和v(n, m <= 100)。以後n行為地鼠的座標,以後m行為鼠洞的座標。距離的單位是m,時間的單位是s,速度的單位是m/s。
output
對於每組資料輸出一行,為易受攻擊的地鼠的數量。
sample input
12 2 5 10
1.0 1.0
2.0 2.0
100.0 100.0
20.0 20.0
sample output
var
link:array[0..101] of longint;
cover:array[0..101] of boolean;
map:array[0..101,0..101] of boolean;
a,b,j,i,k,l,n,m,v,t:longint;
function find(x,y:longint):boolean;
varq,i:longint;
begin
find:=true;
for i:=1 to y do
if map[x,i] and not(cover[i]) then
begin
q:=link[i]; link[i]:=x; cover[i]:=true;
if (q=0) or (find(q,y)) then exit;
link[i]:=q;
end;
find:=false;
end;
procedure main(x:longint);
vari:longint;
begin
for i:=1 to x do
begin
fillchar(cover,sizeof(cover),false);
find(i,x);
end;
end;
procedure work(a,b,c:longint);
var i,j,k,max,ans:longint;
r,s,x0,y0,q,p:real;
x,y:array[0..101] of real;
begin
for i:=1 to a do
readln(x[i],y[i]);
for i:=1 to b do
begin
readln(q,p);
for j:=1 to a do
begin
x0:=x[j]-q;
y0:=y[j]-p;
r:=sqrt(sqr(x0)+sqr(y0));
if r<=c then map[j,i]:=true;
end;
end;
main(a);
ans:=0;
for i:=1 to a do
if link[i]>0 then inc(ans);
writeln(a-ans);
end;
begin
readln(n);
for i:=1 to n do
begin
readln(a,b,v,t);
fillchar(map,sizeof(map),false);
fillchar(link,sizeof(link),false);
work(a,b,v*t);
end;
end.
SSL1333 地鼠的困境
地鼠家族面臨著乙個新的威脅 獵食者。地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的 x,y 座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使得老鷹來時,易受攻擊的地...
地鼠的困境 ssl1333(不一定對)
題目大意 地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的 x,y 座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使得老鷹來時,易受攻擊的地鼠數量最少。題解把每乙隻老...
1333 地鼠的困境 最大匹配
description 地鼠家族面臨著乙個新的威脅 獵食者。地鼠家族一共有n個地鼠和m個鼠洞,每個都位於不同的 x,y 座標中。假如有地鼠在發覺危險以後s秒內都沒有回到鼠洞裡的話,就可能成為老鷹的食物。當然了,乙個鼠洞只能拯救乙隻地鼠的命運,所有地鼠都以相等的速度v移動。地鼠家族需要設計一種策略,使...