最短路+最小生成树
有点忘了...
这题只要判断能不能就行了
具体做法是把所有加油站放到堆里然后跑dij,然后把边权w=d[u]+d[v]+w,跑最小生成树
对于点对(x,y)是否能到达只要判断最大瓶颈路的长度是否>b就行了
具体原因是因为对于一条边(u,v),边权表示了经过这条边的最小油量。
然后最小生成树一边跑,一边离线就行了

#include<bits/stdc++.h> using namespace std; const int N = 2e5 + 5; namespace IO { const int Maxlen = N * 50; char buf[Maxlen], *C = buf; int Len; inline void read_in() { Len = fread(C, 1, Maxlen, stdin); buf[Len] = '