P1783 海灘防禦 最短路

2022-06-02 04:24:10 字數 1087 閱讀 9539

題意:題目的意思就是要建立一道防線,從x=0,鏈結到x=n;

題目會給出m個哨點,每個哨點可以包含半徑為k的範圍,通過這些哨點來建立防線

如圖,建立類似這樣的一條防線,那麼我們就是要從左邊建到右邊,找一條最短路

思路:假如我們單獨處理題目中給出的哨點的話,那麼兩岸還沒處理到,所以我們增加m+1(設立在左岸),m+2兩個點(設立在右岸)

然後就開始建邊,最後走最大值最短路即可

1 #include2

using

namespace

std;

3const

int maxn=1e3+10;4

double dis[maxn]; int

vis[maxn];

5double

x[maxn],y[maxn];

6int

n,m;

7struct

node

8g[1000010]; int head[1000010]; int num=0;12

double mx(double t1,double

t2)13

17void add(int u,int v,double

w)18

21double cal(int t1,int

t2)22

25void

spfa()

2631 queueq;

32 q.push(m+1

);33 vis[1+m]=1

;34 dis[1+m]=0;35

while(!q.empty())48}

49}50}

51}52int

main()

5361

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

68spfa();

69 printf("

%.2f\n

",dis[m+2

]);70 }

view code

洛谷 P1783 海灘防禦

題目描述 wlp同學最近迷上了一款網路聯機對戰遊戲 終於知道為毛johnkram每天刷洛谷效率那麼低了 但是他卻為了這個遊戲很苦惱,因為他在海邊的造船廠和倉庫總是被敵方派人偷襲。於是,wlp動用了他那豐滿且充實的大腦 或許更偏向前者 想出了乙個好主意,他把海灘分成垂直於海岸線的若干列,在其中的幾列上...

題解 洛谷 1783 海灘防禦

題目描述 wlp同學最近迷上了一款網路聯機對戰遊戲 終於知道為毛johnkram每天刷洛谷效率那麼低了 但是他卻為了這個遊戲很苦惱,因為他在海邊的造船廠和倉庫總是被敵方派人偷襲。於是,wlp動用了他那豐滿且充實的大腦 或許更偏向前者 想出了乙個好主意,他把海灘分成垂直於海岸線的若干列,在其中的幾列上...

洛谷 1783 海灘防禦 題解

部落格觀賞效果更佳 平面直角座標系上有m 800 m 800 m 8 00 個點,每個點的x xx座標都在 1,n 1,n 1,n 之內,n 1000 n 1000 n 1 000,y yy座標 1 e5 1e5 1 e5。每個點珂以設乙個半徑為r rr的攻擊塔 攻擊範圍包含邊界 x xx軸上 1,...