“提莫队长正在待命!”

http://csustacm.com:4803/contest/27/problem/B

首先它是一个树,边有0和1两种,计算所有的 两点之间通过1的路的和
我的 想法是1的路不连通 这样就是多个连通块(用并查集维护) 每个连通块内部的城镇之间不会通过1 连通块之间一定通过1 总数-每个连通块内部的城镇之间的路就是答案了 大概就是n*(n-1)-a1*(a1-1)-a2*(a2-1)-a3*(a3-1)-…

/***************************** Name   :“提莫队长正在待命!”* Time   :3-3-2019 20:51* Author :大哥* Type   :并查集+思维* 版权所有_翻版不管*****************************/
#include 
using namespace std;
long long f[300005],a,b,c,num[300005];
long long n,ans;
int finds(long long a){while (a!=f[a]){a=f[a];}return a;
}
void bing(long long a,long long b){long long temp;long long fa=finds(a);num[fa]+=num[finds(b)];while (b!=f[b]){temp=b;b=f[b];f[temp]=fa;}f[b]=fa;
}int main(){scanf("%lld",&n);for (long long i=1;i<=n;i++){ f[i]=i; num[i]=1; }ans=n*(n-1);for (long long i=1;i


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部