二次排序建虚树+树剖ST表维护两点路径中最短边。
当我这么写:
int main() {
...
vector<bool> imp(n);
vector<vector<pair<int, ll>>> vt;
vector<ll> dp(n);
int m;
for (cin >> m; m--;) {
...
vt.assign(n, {});
fill(dp.begin(), dp.end(), 0);
fill(imp.begin(), imp.end(), false);
...
}
}
直接 T 了,因为每次都从 0 到 n 清空,复杂度不对。
需要在 dfs 中顺带清空数组。