Uva10801電梯換乘 最短路

2021-09-24 10:36:04 字數 1172 閱讀 5869

題意:

有一層不超過100層的大樓, 有n個電梯,它們的速度都不同。 而且每個電梯只能到達指定的那些樓層,而且它們都有各自的速度(即上公升一層或下降一層所用的時間)。 如果乙個人在某層走出電梯,要換乙個電梯乘,那麼他要等60秒(不管要等的是那個電梯,即使是剛剛出來的那個電梯也要等60秒)。在0層搭電梯出發時不需要等待。

乙個人從0層開始,目的地是k層, 現在要搭這些電梯,問最少需多少時間。

思路:建圖,最短路

#include #include #include #include #include #define fi first

#define se second

#define pii pairusing namespace std;

const int inf = 0x3f3f3f3f;

typedef long long ll;

const int maxn = 100+5;

int n, k, done[maxn], dis[maxn], t[maxn], w[maxn][maxn];

vectorvec[maxn];

// 圖

struct edge

};vectoredges;

vectorg[maxn];

void init(int a)

void addedge(int u, int v)

struct node

bool operator < (const node& rhs) const

};int dijkstra(int s ,int t)

} }return dis[t];

}int main()

while((ch = getchar()) != '\n');

} // 建圖

for(int p = 0; p < n; ++p)

}} int s = 0, t = k;

int ans = dijkstra(s, t);

if(ans == inf) printf("impossible\n");

else printf("%d\n",ans);

//printf("%d %d",vec[0].size(), vec[1].size());

} return 0;

}

uva10801 最短路問題

題目大意 有一層不超過100層的大樓,有n個電梯,它們的速度都不同。而且每個電梯只能到達指定的那些樓層,而且它們都有各自的速度 即上公升一層或下降一層所用的時間 如果乙個人在某層走出電梯,要換乙個電梯乘,那麼他要等60秒 不管要等的是那個電梯,即使是剛剛出來的那個電梯也要等60秒 在0層搭電梯出發時...

uva10986 最短路徑

題目的意思就是 首先給出有幾組測試樣例 每組樣例先是 給 n 點的個數 m 邊的個數 s 起點 t 終點 然後是每條邊 以及權值.求最短路.但是因為點的數量很多,要用優化的dijkstra 優先佇列.劉汝佳書裡的模板差別只有這題是無向圖.include include include include...

uva 10246(最短路變形)

思路 spfa求出每個點到其餘頂點的最短路 最短路上的每個點的val都小於等於起點的val 然後又二維陣列dp來儲存,最後詢問的時候就是列舉中間點i了,min 1 include2 include3 include4 include5 include6 include7 using namespac...