火焰之地傳送門
憑心而論這題挺水的,一道計算幾何加工的最短路。
用前面牆的個數*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 ...