飛彈防禦塔(missble)題解

2021-07-04 17:38:54 字數 1853 閱讀 2757

freda控制著n座可以發射飛彈的防禦塔。每座塔都有足夠數量的飛彈,但是每座塔每次只能發射一枚。在發射飛彈時,飛彈需要t1秒才能從防禦塔中射出,而在發射飛彈後,發射這枚飛彈的防禦塔需要t2分鐘來冷卻。

所有飛彈都有相同的勻速飛行速度v,並且會沿著距離最短的路徑去打擊目標。計算防禦塔到目標的距離distance時,你只需要計算水平距離,而忽略飛彈飛行的高度。飛彈在空中飛行的時間就是 (distance/v) 分鐘,飛彈到達目標後可以立即將它擊毀。

現在,給出n座飛彈防禦塔的座標,m個入侵者的座標,t1、t2和v,你需要求出至少要多少分鐘才能擊退所有的入侵者。

第一行五個正整數n,m,t1,t2,v。

接下來m行每行兩個整數,代表入侵者的座標。

接下來n行每行兩個整數,代表防禦塔的座標。

輸出乙個實數,表示最少需要多少分鐘才能擊中所有的入侵者,四捨五入保留六位小數。

3 3 30 20 1

0 0

0 50

50 0

50 50

0 1000

1000 0

91.500000

【資料規模】

對於40%的資料,n,m<=20.

對於100%的資料, 1≤n≤50, 1≤m≤50,座標絕對值不超過10000,

t1,t2,v不超過2000.

#include 

#include

#include

#include

#include

#include

#include

#define inf ~0u>>2

#define maxn 5500

using

namespace

std;

int n,m,head[maxn],d[maxn],q[maxn],tot;

double dis[55][55];

struct node_enemy

m[55];

struct node_tower

n[55];

double t1,t2,v;

inline

double calc(node_enemy a,node_tower b)

struct node_edge

edge[500000];

inline

void addedge(int u,int v,int w)

inline

void add(int u,int v,double w)

inline

double predeal()

return t;

}inline

bool bfs()}}

if(d[5000]>0)return

1; else

return0;}

inline

int dfs(int x,int low)

}return0;}

inline

int dinic()

return ff;

}inline

bool check(double lim)

}for(int i=1;i<=n;i++)

for(int j=1;j<=m;j++)

add(0,(i-1)*m+j,1);

for (int i=1;i<=m;i++)

add(3000+i,5000,1);

int tmp=dinic();

return tmp==m;

}int main()

printf("%lf\n",l);

return

0;}

飛彈防禦塔

freda的城堡遭受了 m 個入侵者的攻擊!freda控制著 n 座飛彈防禦塔,每座塔都有足夠數量的飛彈,但是每次只能發射一枚。在發射飛彈時,飛彈需要 t1 秒才能從防禦塔中射出,而在發射飛彈後,發射這枚飛彈的防禦塔需要 t2 分鐘來冷卻。所有飛彈都有相同的勻速飛行速度 v,並且會沿著距離最短的路徑...

網路流 飛彈防禦塔

freda的城堡 freda,城堡外發現了一些入侵者!喵 剛剛 完了城堡建設的方案數,我要歇一會兒嘛lala 可是入侵者已經接近城堡了呀!別擔心,rainbow,你看呢,這是我剛設計的飛彈防禦系統的說 喂 別賣萌啊 freda控制著n座可以發射飛彈的防禦塔。每座塔都有足夠數量的飛彈,但是每座塔每次只...

Codevs2490 飛彈防禦塔

時間限制 1 s 空間限制 64000 kb 題目等級 大師 master freda的城堡 freda,城堡外發現了一些入侵者!喵.剛剛 完了城堡建設的方案數,我要歇一會兒嘛lala 可是入侵者已經接近城堡了呀!別擔心,rainbow,你看呢,這是我剛設計的飛彈防禦系統的說 喂.別賣萌啊 fred...