链接 这道题很容易想到要用并查集,我们只需要用逆向思维 但是,由于数据很大,对于cnt(需要的空投数)不能每次都计数,而是需要实时更新 我们不妨思考,当两个城市合并时,如果二者的根节点不同,那么我们就检查这两个城市的连通块数量,如果大于等于d,cnt就减一,合并完再加上即可 #include<bits/stdc++.h> using namespace std; #define ll long long vector<ll>tree; int n,m,x,d; int cnt=0; struct node{ ll h; int idx; bool operator<...