//乙個無向圖 ,每個點都有高度,
//問從起點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...