hdu2962 限制最短路 列舉

2021-08-04 09:05:24 字數 767 閱讀 1112

題意:n個點m條邊,每條邊有兩個權,乙個是路的長度,乙個是路限制了貨車運輸的高度。最後一行給出起點,終點,和這部車子可以運輸貨物放的最大的高度。

思路:這裡的列舉限制高度,可以過,高度從大列舉到小,可以過600ms 如果二分的話更快。

#include#include#include#include#includeusing namespace std;

#define inf 999999999

#define max 2005

struct edge

;vectorg[max];

vectoredges;

int dis[max];

int zx,zy,xg;

int n,m;

int ans1;

void addedge(int x,int y,int gaodu,int w)

; edges.push_back(a);

edge b=;

edges.push_back(b);

g[x].push_back(edges.size()-2);

g[y].push_back(edges.size()-1);

}bool spfa(int limt)

queueq;

q.push(zx);

dis[zx]=0;

int a;

while(!q.empty())

{a=q.front();

q.pop();

for(int i=0;i

hdu 2962 最短路 二分

題意 最短路上有一條高度限制,給起點和最大高度,求滿足高度最大情況下,最短路的距離 不明白為什麼列舉所有高度就不對 1 include2 include3 include4 const int maxint 999999 5 int c 1005 1005 2 dist 1005 h 1005 6 ...

hdu 2962(二分答案 最短路)

題目大意 給你城市數c,道路數r,運載車的限高h,以及每條道路的限高limit,讓你求start到end的貨物的最大高度res res limit,res h 和在貨物最大高度下,從start到end的最短路。大體思路 二分答案 res 1.h 然後再求最大高度下的最短路即可。具體看 include...

hdu 2962 Trucking(二分 最短路)

題意 卡車要運輸盡可能高的貨物 但不高於乙個安全值 城市間每一條路是雙向的但是都有高度限制。求解運輸盡可能高的貨物時,卡車到達目的地的最短路徑。單源最短路徑的變形,在最短路徑基礎上加了高度限制。思路 採用二分搜尋法 修改的dijkstra,取高度最大的最短路徑就是答案。當列舉太慢,且每次判斷都只有兩...