hdoj--5606--tree(并查集)
tree
n
points and n−1
edges),the points are labeled from 1 to n
edge has a weight from 0 to 1,for every point i∈[1,n]
should find the number of the points which are closest to it,the clostest points can contain
i
itself.
for each test case,the first line is a nubmer n
the number of the points,next n-1 lines,each line contains three numbers
u,v,w
shows an edge and its weight.
T≤50,n≤10
in consideration of the large output,imagine ans
is the answer to point i
only need to output,ans
1
3
1 2 0
2 3 1
1 in the sample. $ans_1=2$ $ans_2=2$ $ans_3=1$ $2~xor~2~xor~1=1$,so you need to output 1.
#include<stdio.h>
#include<string.h>
int rank[100100];
int pre[100100];
void init()
{
for(int i=0;i<100100;i++)
pre[i]=i;
}
//int find(int x)
//{
// return pre[x]==x?x:pre[x]=find(pre[x]);
//}
int find(int p)
{
int child=p;
while(p!=pre[p])
p=pre[p];
while(child!=p)
{
int t=pre[child];
pre[child]=p;
child=t;
}
return p;
}
void join(int x,int y)
{
int fx=find(x);
int fy=find(y);
if(fy!=fx)
pre[fx]=fy;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
memset(rank,0,sizeof(rank));
init();
int a,b,c;
scanf("%d",&n);
for(int i=1;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(c==0)
join(a,b);
}
for(int i=1;i<=n;i++)
{
if(pre[i]==i)
rank[i]++;
else
rank[find(i)]++;
}
int ans=0;
for(int i=1;i<=n;i++)
ans^=(rank[find(i)]);
printf("%d\n",ans);
}
return 0;
}
hdoj--5606--tree(并查集)的更多相关文章
- HDU 5606 tree 并查集
tree 把每条边权是1的边断开,发现每个点离他最近的点个数就是他所在的连通块大小. 开一个并查集,每次读到边权是0的边就合并.最后Ansi=size[findset(i)],size表示每个并 ...
- tree(并查集)
tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- Hdu.1325.Is It A Tree?(并查集)
Is It A Tree? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Is It A Tree?(并查集)
Is It A Tree? Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26002 Accepted: 8879 De ...
- CF109 C. Lucky Tree 并查集
Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal re ...
- [Swust OJ 856]--Huge Tree(并查集)
题目链接:http://acm.swust.edu.cn/problem/856/ Time limit(ms): 1000 Memory limit(kb): 10000 Description T ...
- Codeforces Round #363 (Div. 2)D. Fix a Tree(并查集)
D. Fix a Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Is It A Tree?(并查集)(dfs也可以解决)
Is It A Tree? Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submi ...
- 树上统计treecnt(dsu on tree 并查集 正难则反)
题目链接 dalao们怎么都写的线段树合并啊.. dsu跑的好慢. \(Description\) 给定一棵\(n(n\leq 10^5)\)个点的树. 定义\(Tree[L,R]\)表示为了使得\( ...
- hdu 1325 Is It A Tree? 并查集
Is It A Tree? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
随机推荐
- 杂项-DB:DW/DWH(数据仓库)
ylbtech-杂项-DB:DW/DWH(数据仓库) 数据仓库,英文名称为Data Warehouse,可简写为DW或DWH.数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合. ...
- 如何在maven项目中使用spring
今天开始在maven项目下加入spring. 边学习边截图. 在这个过程中我新建了一个hellospring的项目.于是乎从这个项目出发开始研究如何在maven项目中使用spring.鉴于网上的学习资 ...
- $.ajax 和$.post的区别
https://blog.csdn.net/weixin_39709686/article/details/78680754
- ROS-OPENCV
前言:opencv是一个开源的跨平台计算机视觉库. 前提:1.已下载并编译了相关功能包集,如还未下载,可通过git下载:https://github.com/huchunxu/ros_explorin ...
- HTML-虚线框3例
第一例: 代码 <HR style=> 第二例: 代码 <DIV style="BORDER-TOP: #00686b 1px dashed; OVERFLOW: hidd ...
- mac下安装postgreSql
在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...
- Spark SQL 编程API入门系列之SparkSQL数据源
不多说,直接上干货! SparkSQL数据源:从各种数据源创建DataFrame 因为 spark sql,dataframe,datasets 都是共用 spark sql 这个库的,三者共享同样的 ...
- 解决Ubuntu不能全屏问题
解决虚拟机中Ubuntu14.04系统安装VM Tools 时出现以下信息: 请确保您已登录客户机操作系统.在客户机中装载CD驱动器启动终端,使用tar解压缩安装程序,然后执行vmware-insal ...
- js获取浏览器缩放比例
前几天在做项目的时候遇到浏览器缩放比例不为100%时,出来的页面不正常,于是找到了方法获取其比例来通知用户 function detectZoom (){ , screen = window.scre ...
- c++标准库都有哪些文件
from:http://topic.csdn.net/u/20090201/16/3bd41b72-5694-474e-a68b-98b2f070e76b.html C++标准库的所有头文件都没有扩展 ...