【链接】
bzoj1050
【题目大意】
给你一个n个顶点,m条边的无向图。再给你S和T,求一条S到T的路径,并使这条路径上的权值最大边和最小边的比值最小。
【解题报告】
出看此题,首先会想到二分,枚举边权最小值,再二分最大值,用并查集验证,但是复杂度似乎有些高。所以该如何优化呢,其实我们发现边数并不多,所以先按照边权大小从小到大排序,然后m^2枚举区间(因为区间两头就是最小值和最大值),然后并查集验证,这样就可以解决这个问题了。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=505,maxm=