luogu P1354 房間最短路問題

2022-05-16 11:14:37 字數 527 閱讀 6311

火焰之地傳送門

憑心而論這題挺水的,一道計算幾何加工的最短路。

用前面牆的個數*4+當前牆上的序號表示點的序號,對於每個點(包括起點和終點),列舉其後面牆上的所有點一一判斷是否可與之相連,能相連就連邊,最後跑一遍floyd。

判斷直接用數學公式做一次函式就行。

呆馬:

#include#include

#include

#include

#define maxn 25

using

namespace

std;

intn;

struct

node

que[maxn];

double floyd[101][101

];bool pan(int a,int b,int h1,int

h2)

return1;

}void add(int a,int b,int h1,int

h2)int

main()

Luogu P1354 房間最短路問題

這是一道紫題,然而實際上我覺得也就藍題難度甚至不到。and,這道題就是一道數學題,模擬計算過程。求最短路嘛,肯定要考慮建圖,只需要把中間的牆上每個口的邊緣處的點作為圖中的點就行。至於為什麼,顯然如果我們取中間任何乙個點連邊,到下一面牆時路徑之和總是比連其中乙個邊緣的點要大,直觀感 g n覺 ju 一...

P1354 房間最短路問題

看到此題,第乙個想到的是貪心 要從 0.0,5.0 走到 10.0,5.0 就要繞過一些牆,那就會經過一些牆的端點 下文稱之為節點 單從樣例看來,就會說走到離當前節點距離最小的點就行了,但真的是這樣嗎?顯然不是,原因有二 如果起點到終點沒有障礙,那麼走其它節點是不是就會走了冗餘的路?是的,在某些最優...

洛谷P1354 房間最短路問題 floyd

在乙個長寬均為10,入口出口分別為 0,5 10,5 的房間裡,有幾堵牆,每堵牆上有兩個缺口,求入口到出口的最短路經。輸入格式 第一排為n n 20 牆的數目。接下來n排,每排5個實數x,a1,b1,a2,b2。x表示牆的橫座標 所有牆都是豎直的 a1 b1和a2 b2之間為空缺。a1 b1 a2 ...