TOJ3660家庭关系(并查集+hash+图的连通性)

时间:2021-02-10 03:39:40

家庭关系 TOJ3660家庭关系(并查集+hash+图的连通性) TOJ3660家庭关系(并查集+hash+图的连通性)

时间限制(普通/Java):1000MS/3000MS     运行内存限制:65536KByte
总提交: 38            测试通过: 9

描述

给定若干家庭成员之间的关系,判断2个人是否属于同一家庭,即2个人之间均可以通过这些关系直接或者间接联系。

输入

输入数据有多组,每组数据的第一行为一个正整数n(1<=n<=100),表示有100个关系描述,接下来有n行,每行的描述方式为:
p1 p2 c
其中p1、p2和c均为一串文本,表示每个人的姓名,p1和p2为c的父亲和母亲。
最后一行包含2个字符串a和b,为待判断的两个人的姓名。
每个人的姓名由大小写字母组成,长度不超过80。

若n为0,表示输入结束。

输出

如果a和b在同一个家庭中,则输出Yes
否则输出No

样例输入

2
Barbara Bill Ted
Nancy Ted John
John Barbara
3
Lois Frank Jack
Florence Bill Fred
Annie Fred James
James Jack
0

样例输出

Yes
No

题目上传者

crq

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
using namespace std;
const int maxn = 1000;
int gn; int f[maxn]; int getfather(int x) {
if(x == f[x]) return x;
else return f[x] = getfather(f[x]);
} void work(int x, int y, int z) {
int t1 = getfather(x);
int t2 = getfather(y);
if(t1 != t2) {
f[t1] = t2;
}
int t3 = getfather(z);
if(t2 != t3) {
f[t3] = t2;
}
} int main()
{
int i, j;
map<string, int> mymap;
map<string, int>::iterator it;
while(scanf("%d", &gn) != EOF && gn)
{
int cnt = 0;
for(i = 0; i < maxn; i++) f[i] = i;//!!!!
mymap.clear();
string str[3];
for(i = 0; i < 3; i++) str[i].clear();
for(i = 0; i < gn; i++) {
for(j = 0; j < 3; j++) {
cin >> str[j];
it = mymap.find(str[j]);
if(it == mymap.end()){
mymap[str[j]] = ++cnt;
}
}
int a[3];
a[0] = mymap[str[0]];
a[1] = mymap[str[1]];
a[2] = mymap[str[2]];
work(a[0], a[1], a[2]);
}
string s, t;
cin >> s >> t;//所有判读的人不在集合里面.
int start = 0;
int endx = 0;
start = mymap[s];
// printf("start = %d\n", start);
endx = mymap[t];
// printf("endx = %d\n", endx);
if(start == 0 || endx == 0) {//WA了好多次.
printf("No\n");
continue;
}
int t1 = getfather(start);
int t2 = getfather(endx);
if(t1 == t2)
cout << "Yes" << endl;
else cout << "No" << endl;
}
return 0;
}

TOJ3660家庭关系(并查集+hash+图的连通性)的更多相关文章

  1. PAT甲题题解-1126&period; Eulerian Path &lpar;25&rpar;-欧拉回路&plus;并查集判断图的连通性

    题目已经告诉如何判断欧拉回路了,剩下的有一点要注意,可能图本身并不连通. 所以这里用并查集来判断图的联通性. #include <iostream> #include <cstdio ...

  2. 又见关系并查集 以POJ 1182 食物链为例

    简单的关系并查集一般非常easy依据给出的关系搞出一个有向的环,那么两者之间的关系就变成了两者之间的距离. 对于此题: 若u.v不在一个集合内,则显然此条语句会合法(暂且忽略后两条.下同). 那么将f ...

  3. poj 1182 食物链(关系并查集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 62824   Accepted: 18432 Description ...

  4. PATL2-007&period; 家庭房产-并查集

    L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定每个人的家庭成员和其自己名下的房产,请你统计出每个 ...

  5. Find them&comma; Catch them&lpar;POJ 1703 关系并查集&rpar;

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38668   Accepted: ...

  6. poj 2492&lpar;关系并查集&rpar; 同性恋

    题目;http://poj.org/problem?id=2492 卧槽很前卫的题意啊,感觉节操都碎了, t组测试数据,然后n,m,n条虫子,然后m行,每行两个数代表a和b有性行为(默认既然能这样就代 ...

  7. poj 1182 &lpar;关系并查集&rpar; 食物链

    题目传送门:http://poj.org/problem?id=1182 这是一道关系型并查集的题,对于每个动物来说,只有三种情况:同类,吃与被吃: 所以可以用0,1,2三个数字代表三种情况,在使用并 ...

  8. BZOJ1050 &lbrack;HAOI2006&rsqb;旅行comf&lbrack;并查集判图连通性&rsqb;

    ★ Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径 ...

  9. tyvj1017 - 冗余关系 ——并查集

    题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1017 并查集 #include <cstdio> #include <cstdlib& ...

随机推荐

  1. C&num;序列化

    1.序列化一般有2种(XML和2进制),简单对象序列化 using System; using System.IO; using System.Runtime.Serialization.Format ...

  2. SVN-让项目不包括Bin和Obj

    方案一: 方案二: 方法三: 添加自定义文件夹或者文件的过滤 eg:.svn .git .vs obj bin  *.o *.lo *.la *.al .libs *.so *.so.[0-9]* * ...

  3. MySQL半同步复制

    从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认的复制即是 ...

  4. Android Screen Orientation Change &lpar;Screen Rotation&rpar; Example

    原文见: http://techblogon.com/android-screen-orientation-change-rotation-example/#

  5. 使用 Swoole 来加速 Laravel应用

    Swoole 是为 PHP 开发的生产级异步编程框架. 他是一个纯 C 开发的扩展, 他允许 PHP 开发者在 PHP 中写 高性能,可扩展的并发 TCP, UDP, Unix socket, HTT ...

  6. HDU2196&lpar;SummerTrainingDay13-D tree dp&rpar;

    Computer Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. django----查看数据库中的sql语句

    加载setting.py 文件中 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console ...

  8. FJNU2018低程F jq解救fuls (贪心乱搞)题解

    题目描述 一天fuls被邪恶的"咕咕咕"抓走了,jq为了救fuls可谓是赴汤蹈火,费了九牛二虎之力才找到了"咕咕咕"关押fuls的地方. fuls被关在一个机关 ...

  9. 腾讯EC &period;net API对接第三方系统

    最近公司销售部门用到了腾讯EC,实现公司内部OA系统与腾讯ec的数据同步,要求如下: 1.OA内部系统账号与腾讯ec登陆账号同步 2.首先做义工客户端工具用来把现有客户导入到EC,销售人员的客户信息与 ...

  10. 如何查找EI 及SCI 索引

    1.EI https://www.engineeringvillage.com/search/quick.url 搜题目,然后点击搜索,然后点击细节(detailed) Accession numbe ...