hdu2362(列舉 最短路)

2021-09-09 00:05:21 字數 415 閱讀 5552

題意:給你n點,m條路,每個點都有不同的高度,題目要求在高度差最小的情況下的最短路徑。

開始做這個題目時,我是用二次最短路在做的,回來發現思路錯了,就參考了大牛**,恍然大悟。

只要對高度公升序排序,然後列舉各個高度差下的最短路徑

**:

#include#includeusing namespace std;

#define p 1500000001

int a[105],b[105],s[105][105],n;

int main()

sort(a+1,a+n+1);

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

else

vist[1]=1;

dist[1]=0;

while(1)

}}

hdu2363 列舉 最短路 好題

這道題目一開始我的思路就是錯了,前前後後掙扎了n個小時。開始的想法是dijkstra,通過二分列舉高度差。但是發現乙個問題,就是因為dijkstra裡面優先選擇的是短的路。我直接二分高度差,是有兩個限制條件。然後就想到spfa,後來仔細想了想還是不行。最後用dfs了,才100個點嘛,感覺穩了,結果又...

hdu 1692 列舉 剪枝

題意 給你一些井的資訊,井中原有的水,當井中的水滿足一定量後會被破壞並且這些水全部流入下乙個井中,用多少能量能直接破壞這個井。然後問要想破壞第n口井至少要多少能量。解題思路 這題首先是要找到從哪口井開始破壞,因為要破壞第n口井,要麼直接破壞n,要麼n之前有連續的幾口井一同被破壞,如果中間出現了乙個不...

HDU3721 列舉 最長路

題意 給你一顆n個節點n 1條邊的樹,每條邊都有乙個權值,現在讓你任意移動一條邊然後把這條邊連線到任意兩個點上,最後問你怎樣移動才能使樹上相距最遠的兩個點距離最小。思路 先求出樹的最長路,然後列舉移動最長路上的所有邊,移走這條邊後,原樹必定分為不連線的兩顆子樹,分別求這兩顆子樹的最長路,然後分別找到...