題意:給出青蛙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個結算工錢的時間,聰哥可以自由安排這些時間,也就是說什麼時候拿錢,老闆說的不算,聰哥才有發言權!因為聰哥是土豪,他是老闆的老闆 聰哥不喜歡身上一次性有太多的錢,於是他想安排一下拿...