bestcoder #68 A(并查集)
2016-01-02 21:29
381 查看
每次都是在最后十几分钟才想出来。。并不能交了T_T
w是0的话merge(u,v)
ans[i]就是i所在集合的元素个数
w是0的话merge(u,v)
ans[i]就是i所在集合的元素个数
#include"cstdio" #include"queue" #include"cmath" #include"stack" #include"iostream" #include"algorithm" #include"cstring" #include"queue" #include"map" #include"vector" #define ll long long using namespace std; const int MAXN = 100500; const int MAXE = 200500; const int INF = 0x3f3f3f; int f[MAXN],sum[MAXN]; int fa(int x){ return x==f[x]?x:f[x]=fa(f[x]); } void merge(int a,int b){ a=fa(a); b=fa(b); f[a]=b; } int main(){ //freopen("in.txt","r",stdin); int n,T;scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1;i<=n;i++) f[i]=i; memset(sum,0,sizeof(sum)); for(int i=1;i<n;i++){ int u,v,w;scanf("%d%d%d",&u,&v,&w); if(!w) merge(u,v); } for(int i=1;i<=n;i++) sum[fa(i)]++; int ans,flag=0; for(int i=1;i<=n;i++){ if(flag) ans^=sum[fa(i)]; else ans=sum[fa(i)],flag=1; } cout<<ans<<endl; } return 0; }
相关文章推荐
- web servies
- 多线程
- python 代码片段
- 第八届河南省赛G.Interference Signal(dp)
- HDU 3968 Angry Birds Again(计算几何)
- startService与bindService的区别
- epoll:EPOLLLT模式下的正确读写方式
- 16年1月2日记录:新站收录的问题探讨与博客群的维护问题探讨
- hdoj1811变形课【dfs】
- iOS中viewController的三种创建方式
- Eclipse中搭建Apache Tomcat7源码调试环境
- Eclipse中搭建Apache Tomcat7源码调试环境
- Maven deploy时报Fatal error compiling: tools.jar not found错误的问题处理(转载)
- node.js 实现高并发大流量处理网站
- python实现onvif协议-2
- Eclipse中搭建Apache Tomcat7源码调试环境
- 【随便说说】新的一年
- Android requires compiler compliance level 5.0 or 6.0. Found '
- 简单工厂模式(Simple Factory Pattern)
- 数学分析原理-第1章 实数系和复数系