SSL1579 澤澤在巴西 spfa

2021-07-28 13:00:02 字數 2074 閱讀 6042

澤澤在巴西

time limit:10000ms  memory limit:65536k

total submit:81 accepted:29 

case time limit:1000ms

description

澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去…… 

澤澤來到了足球王國——巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。 

突然,澤澤被乙個人拎了起來,一看,是個足球流氓。他後面跟了一大群足球流氓,正虎視眈眈地看他。他們要求和澤澤比賽,輸了就要揍他。 

沒辦法,澤澤硬著頭皮和足球流氓另外擄來的幾個人一起組建了乙隻隊伍,和足球流氓隊比賽。 

比賽開始,澤澤隊率先發球。澤澤觀察了四周,想怎麼才能用最短的時間射門呢? 

射門的時間為距離*2,而傳球的時間是距離*1。所以澤澤想找一條用時最少的射門路徑,來打敗足球流氓。 

足球流氓當然不會袖手旁觀,他們會攔截。當澤澤隊伍中的傳球人、被傳球人之間有某足球流氓並且他們在同一直線上時,傳球不會成功,即不能這樣傳球。比如a(1,2)想傳球給b(7,8),中間有個足球流氓c(3,4),則他們在同一直線,傳球不成功。射門不受足球流氓影響。 

input

第1行3個整數x0,y0,n,m。x0,y0表示球門的座標,n表示澤澤隊伍有幾個人,m表示足球流氓有幾個人。 

接下來的n行,分別有2個整數,表示澤澤球隊的球員座標。其中最前面的2個整數是澤澤的座標。球一開始在澤澤腳下。 

接下來的m行,分別有2個整數,表示足球流氓的球員座標。 

保證不會有2個人座標相同。 

output

輸出乙個整數,是最短時間四捨五入取整後的結果。

分析:叉積列舉判斷三點是否共線然後建圖,spfa做最短路。

** const

maxn=300000;

vard,a:array[0..maxn] of real;

ls,s,next,x,y,x1,y1,p,q:array[-maxn..maxn] of longint;

v:array[0..maxn] of boolean;

f:array[0..500,0..500] of boolean;

i,j,k,n,m,l:longint;

fl:boolean;

procedure init(i,j:longint);

begin

inc(l);

p[l]:=i;

q[l]:=j;

a[l]:=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]));

if (j=1) or (i=1) then a[l]:=a[l]*2;

next[l]:=ls[i];

ls[i]:=l;

end;

procedure check(i,j,k:longint);

begin

if (x[i]-x1[k])*(y[j]-y1[k])-(x[j]-x1[k])*(y[i]-y1[k])=0 then

if (sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]))>sqrt(sqr(x[i]-x1[k])+sqr(y[i]-y1[k]))) and(sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]))>sqrt(sqr(x[j]-x1[k])+sqr(y[j]-y1[k]))) then exit;

fl:=true;

end;

procedure spfa;

varhead,tail,t:longint;

begin

head:=0;tail:=1;

s[1]:=2;

for i:=1 to n+1 do

d[i]:=maxlongint;

d[2]:=0;

v[2]:=true;

while head0 do

begin

if (d[p[t]]+a[t]

SSL 1579 澤澤在巴西

description 澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去 澤澤來到了足球王國 巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。突然,澤澤被乙...

澤澤在巴西 ssl1579 最短路

澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去 澤澤來到了足球王國 巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。突然,澤澤被乙個人拎了起來,一看,是個...

澤澤在巴西

澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去 澤澤來到了足球王國 巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。突然,澤澤被乙個人拎了起來,一看,是個...