vijos1034题解

发布时间:2016-12-9 23:29:37 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"vijos1034题解",主要涉及到vijos1034题解方面的内容,对于vijos1034题解感兴趣的同学可以参考一下。

题目: 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。 #include<stdio.h> using namespace std; long f[5001]; long n,m,p,i,x,y; long getfather(long u) { if (f[u]==u) return u; f[u]=getfather(f[u]); return f[u]; } void he(long u,long v) { if (f[u]==f[v]) return; u=getfather(u); v=getfather(v); f[u]=v; } int main() { scanf("%ld %ld %ld",&n,&m,&p); for (i=1;i<=n;i++) f[i]=i; for (i=1;i<=m;i++) { scanf("%ld%ld",&x,&y); he(x,y); } for (i=1;i<=p;i++) { scanf("%ld%ld",&x,&y); if (getfather(x)==getfather(y))printf("Yes\n"); else printf("No\n"); } return 0; }

上一篇:TeeChart for .NET常用属性总结
下一篇:CLASSPATH的作用

相关文章

关键词: vijos1034题解

相关评论