poj 2253 最小化最長邊 spfa變形

2021-08-18 16:37:01 字數 1123 閱讀 5317

題意:給出青蛙a,b和若干石頭的座標,現青蛙a想到青蛙b那,a可通過任意石頭到達b,

問從a到b多條路徑中的最長邊中最短的邊

最短路中最小化最大值,把spfa中鬆弛改一下就行了 注意double型別

#include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f

using namespace std;

const int maxn = 1005;

const int maxm = 100005;

int n, m, s, t; //n為點數 s為源點

int head[maxn]; //head[from]表示以head為出發點的鄰接表表頭在陣列es中的位置,開始時所有元素初始化為-1

double d[maxn]; //儲存到源節點的距離,在spfa()中初始化

int cnt[maxn];

bool inq[maxn]; //這裡inq作inqueue解釋會更好,出於習慣使用了inq來命名,在spfa()中初始化

int nodep; //在鄰接表和指向表頭的head陣列中定位用的記錄指標,開始時初始化為0

int pre[maxn];

struct node es[maxm];

void init()

nodep = 0;

}void addedge(int from, int to, double weight)

bool spfa()}}

}}

return true;

}void putpath()

now = pre[now];

}while(!path.empty())

}double x[maxn], y[maxn];

int main()

}s = 0, t = 1;

if(spfa())

//putpath();

}return 0;

}

poj 2253 最短路變形 最大邊的最小值

題意 給出兩隻青蛙 以及其他石頭的座標,需要求出可以到達另乙隻青蛙的所有路徑中,青蛙跳躍距離的最小值 每一種路徑中 青蛙的跳躍距離又是不同的,需要看這條路徑中需要跳躍的最長距離 input 輸入將包含乙個或多個測試用例。每個測試用例的第一行將包含石頭數量n 2 n 200 下n行各包含兩個整數xi,...

poj 3662 最小化第k大的值

題目大意 有n個節點以及連線的p個無向邊,現在要通過這p條邊從1號節點連線到n號節點。若無法連線成功,則返回 1 若能夠連線成功,那麼其中用到了l條邊,這l條邊中有k條邊可以免費,l k條邊不能免費,求出不能免費的邊的最大長度。題目分析 實現 c include include include in...

POJ 3273(二分,最小化最大值)

和這道題一樣了 description 聰哥在暑假參加了打零工的活動,這個活動分為n個工作日,每個工作日的工資為vi。有m個結算工錢的時間,聰哥可以自由安排這些時間,也就是說什麼時候拿錢,老闆說的不算,聰哥才有發言權!因為聰哥是土豪,他是老闆的老闆 聰哥不喜歡身上一次性有太多的錢,於是他想安排一下拿...