思路:这题的出题人是不是语文不行啊,题目意思说不清楚。
知道是求存在路径的点对数后,用并查集每次记录集合中点的数目,很容易就解决了。
#include#include #include #include #include #include #include #include #include #include #define pb push_back#define mp make_pair#define Maxn 200100#define Maxm 800002#define LL __int64#define Abs(x) ((x)>0?(x):(-x))#define lson(x) (x<<1)#define rson(x) (x<<1|1)#define inf 1000000000#define lowbit(x) (x&(-x))#define Mod 1000000007using namespace std;int fa[Maxn],cnt;LL num[Maxn],ans[Maxn];struct Edge{ int u,v,val; int operator< (const Edge &temp) const { return val