hdu2363Cycling 二分 最短路

2021-07-04 06:57:19 字數 1018 閱讀 3485

//乙個無向圖 ,每個點都有高度,

//問從起點1到終點n的最高點減最低點的差值最小的前提下的最短路和這個差值

//由於n<100所以可以先將這n個點按公升序排,列舉這個最短路的左邊最小mi,二分找最小的右邊ma

#include

#include

#include

#include

using namespace std ;

const int maxn = 110 ;

const int maxm = 5010 ;

const int inf = 0x3f3f3f3f ;

struct edge

edge[maxm<<1] ;

int n , m ;

int head[maxn] , vis[maxn] , dis[maxn] , h[maxn] , a[maxn];

int nedge ;

void addedge(int u , int v , int w)

bool dijkstra(int mi , int

ma) }

if(dis[n] == inf)return false ;

else

return true ;

}int find(int l , int r)

return l ;

}int main()

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

int len_a = unique(a + 1 , a + 1 + n) - a ;

while(m--)

int mi = 0 , ma = inf , len = inf ;

for(int i = 1;i <= len_a;i++)

if(a[r] - a[i] == ma - mi)}}

printf("%d

%d\n" , ma - mi , len) ;

}return

0 ;}

HDU 2363 Cycling 列舉限制 最短路

題意 給n個點即n個點的高度,問一條最短路的最大高度差最小值是多少?想法 列舉所有兩個點之間的高度差,然後把這個限制用最短路去跑,可以完成的最小的限制即是答案,還有,不要寫無用的函式在上面,會wa,我丫的多謝了乙個絕對值函式,wa到死啊。include include include include...

HDU 2363 Cycling 列舉最短路

傳送門 感覺是非常浪費時間的一道題 直接o n 2 o n 2 o n2 列舉上下界去跑最短路就行了 也可以列舉下界,二分上界可能可以加速一下 include using namespace std const int maxn 2e5 10 const int inf 2e9 1 struct e...

hdu 2363 最短路 列舉)

思路 和之前hdu上做過的一題很像。就是先求求出所有的高度差,排序後列舉,每次都一次spfa,求出dist,若dist n inf,說明是在最小高度差下找到了最短路徑,直接break即可。另外,發現若不用visited標記的話,時間是其兩倍。orz.以後還是老老實實加visited 吧。1 incl...