题目大意:自行脑补。
思路:维护两个维度上的带权并查集即可。
注意对于题目给出的一堆关系,我们应该添加两对关系。
Code:
#include
<cstdio>
#include
<cstring>
#include
<cctype>
#include
<iostream>
#include
<algorithm>
using
namespace
std;
#define
N 40010
int
n, m;
struct
UnionSet {
int
root[N], dis[N];
void
reset() {
int
i;
for(i
= 1; i <= n; ++i)
root[i]
= i, dis[i] = 0;
}
int
fi......
阅读全文