Educational Codeforces Round 64 (Rated for Div. 2)D(并查集,图)
#include<bits/stdc++.h>
using namespace std;
int f[2][200007],s[2][200007];//并查集,相邻点
int find_(int *f,int x){
return f[x]==x?x:f[x]=find_(f,f[x]);
}
void add(int *f,int *s,int x,int y){
x=find_(f,x);
y=find_(f,y);
if(x!=y)//不在一个联通块,将x并入y所在联通块中,将块内的相邻类型点数量更新
f[x]=y,s[y]+=s[x];
}
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i){
f[0][i]=f[1][i]=i;
s[0][i]=s[1][i]=1;
}
int x,y,z;
for(int i=1;i<n;++i){
scanf("%d%d%d",&x,&y,&z);
add(f[z],s[z],x,y);
}
long long ans=0;
for(int i=1;i<=n;++i)
ans+=1ll*s[0][find_(f[0],i)]*s[1][find_(f[1],i)]-1;
//从i点出发,终点为0或1结点,共有x-1+y-1,从0结点出发经过i终点为1结点,共有(x-1)*(y-1),合计x*y-1
printf("%lld",ans);
return 0;
}
最新文章
- 兼容IE7音乐播放器之jplayer的使用
- [delphi]SetWindowsHookExA函数入口处修改
- spring缓存
- android 蓝牙设备监听广播
- (一)linux常见命令
- 安全攻城狮研发技能栈V1.0,附详细点评~
- 关于OJ上内存问题的试验
- 关于String的相关常见方法
- ajax访问controller,无法通过return $this->;goHome()跳转
- SQL Server 插入含有中文字符串出现乱码现象的解决办法
- Day4 Python基础之数据类型(三)
- 9、js扩展
- SQL-触发器-011
- codeforces 980A Links and Pearls
- ★ prototype、__proto__ 详解
- 搭建ELK集群
- Docker容器学习与分享10
- Fib的奇怪定理 : gcd(F[n],F[m])=F[gcd(n,m)]
- 混乱之子第七季/全集Sons of Anarchy迅雷下载
- C++ STL vector(向量容器)的使用(附完整程序代码)
热门文章
- 第一篇:Git操作详解
- java错误:The superclass ";javax.servlet.http.HttpServlet"; was not found on the Java Bu
- 代码题(3)— 最小的k个数、数组中的第K个最大元素、前K个高频元素
- 批量处理JDBC语句提高处理速度
- Android之Widget学习总结
- python suds 调用webservice 缓存
- Gym 101142G	: Gangsters in Central City(DFS序+LCA+set)
- android开发 解析服务器端xml文件数据存储到android客户端SQLite数据库
- Apache Flume 1.6.0 发布,日志服务器
- Python xlrd、xlwt、xlutils修改Excel文件-OK