澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去……
澤澤來到了足球王國——巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。
突然,澤澤被乙個人拎了起來,一看,是個足球流氓。他後面跟了一大群足球流氓,正虎視眈眈地看他。他們要求和澤澤比賽,輸了就要揍他。
沒辦法,澤澤硬著頭皮和足球流氓另外擄來的幾個人一起組建了乙隻隊伍,和足球流氓隊比賽。
比賽開始,澤澤隊率先發球。澤澤觀察了四周,想怎麼才能用最短的時間射門呢?
射門的時間為距離*2,而傳球的時間是距離*1。所以澤澤想找一條用時最少的射門路徑,來打敗足球流氓。
足球流氓當然不會袖手旁觀,他們會攔截。當澤澤隊伍中的傳球人、被傳球人之間有某足球流氓並且他們在同一直線上時,傳球不會成功,即不能這樣傳球。比如a(1,2)想傳球給b(7,8),中間有個足球流氓c(3,4),則他們在同一直線,傳球不成功。射門不受足球流氓影響。
第1行3個整數x0,y0,n,m。x0,y0表示球門的座標,n表示澤澤隊伍有幾個人,m表示足球流氓有幾個人。
接下來的n行,分別有2個整數,表示澤澤球隊的球員座標。其中最前面的2個整數是澤澤的座標。球一開始在澤澤腳下。
接下來的m行,分別有2個整數,表示足球流氓的球員座標。
保證不會有2個人座標相同。
輸出乙個整數,是最短時間四捨五入取整後的結果。
0 0 5 2
20 20
27 -14
0 16
-7 -9
23 38
22 24
3 0澤澤(20,20)傳給3號隊員(0,16),3號隊員再射門(0,0),總共用了52。
對於80%的資料,n<=10,m<=5
對於100%的資料,n<=300,m<=100
列舉己方球員i,
j 和敵方球員
k ,判斷是否
k在直線i−
>
j 上,連邊建圖
需要注意的是最後只能射門
#include
#include
#include
#include
#define n 301
#define m (n+1)*(n+1)*2+1
#define inf 0x7f7f7f7f
using
namespace
std;
struct posp[2][n];
struct edgee[m];
int ls[m],maxe=0;
double dis[m];
bool vis[n];
int max(int x,int y)
int min(int x,int y)
double onseg(pos a,pos b,pos c)
double dist(pos a,pos b)
void add(int x,int y,double w);ls[x]=maxe;}
double spfa(int st,int ed)
}vis[now]=false;
}return dis[ed];
}int main()
if (flag)
add(i,j,2*dist(p[0][i],p[0][j]));
else
add(i,j,dist(p[0][i],p[0][j]));
}cout
<<(int)(spfa(1,0)+0.5);
return
0;}
SSL 1579 澤澤在巴西
description 澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去 澤澤來到了足球王國 巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。突然,澤澤被乙...
SSL1579 澤澤在巴西 spfa
澤澤在巴西 time limit 10000ms memory limit 65536k total submit 81 accepted 29 case time limit 1000ms description 澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告...
澤澤在巴西
澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去 澤澤來到了足球王國 巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。突然,澤澤被乙個人拎了起來,一看,是個...