变形课

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 31338    Accepted Submission(s): 11290

Problem Description
呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体. 
Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
Input
测试数据有多组。每组有多行,每行一个单词,仅包括小写字母,是Harry所会的所有咒语.数字0表示一组输入结束.
Output
如果Harry可以完成他的作业,就输出"Yes.",否则就输出"No."(不要忽略了句号)
Sample Input
so soon river goes them got moon begin big 0
Sample Output
Yes.

Hint

Hint

Harry 可以念这个咒语:"big-got-them".

Source
Gardon-DYGG Contest 1

代码:

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<string>
 4 #include<bits/stdc++.h>
 5 using namespace std;
 6 string str;
 7 int father[30];
 8 int find(int x){
 9     if(x!=father[x])
10         father[x]=find(father[x]);
11     return father[x];
12 }
13 void mere(int x,int y){
14     x=find(x);
15     y=find(y);
16     if(x!=y)
17       father[y]=x;
18 }
19 int main(){
20     int i;
21     while(cin>>str){
22         memset(father,0,sizeof(father));
23         for(i=0;i<29;i++)
24             father[i]=i;
25         int len=str.length();
26         int x=find(str[0]-'a');
27         int y=find(str[len-1]-'a');
28         if(x!=y&&y!='b'-'a')
29             mere(x,y);
30             while(cin>>str){
31                 if(!str.compare("0"))break;
32                 len=str.length();
33                 x=find(str[0]-'a');
34                 y=find(str[len-1]-'a');
35                 if(x!=y&&y!='b'-'a')
36                     mere(x,y);
37
38             }
39             x=find('m'-'a');
40             y=father['b'-'a'];
41             if(x!=y)
42                 printf("No.\n");
43             else
44                 printf("Yes.\n");
45
46     }
47     return 0;
48 }

转载于:https://www.cnblogs.com/ZERO-/p/9740865.html

HDU 1181.变形课-并查集相关推荐

  1. HDU 1181 变形课(dfs)

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submi ...

  2. HDU 1181 变形课

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1181 此题多种方法.比如说Flyod传递闭包 就能搞定 这里只写DFS和BFS 熟悉下.只有DFS是我写 ...

  3. [HDU] 1181 变形课-简单建模后广搜

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1181 方法:以所有咒语看做一条起点为首字母,终点为末字母的有向边来建立有向图.然后在图中判断目标路径 ...

  4. HDU 2473 Junk-Mail Filter(并查集的删除操作)

    题目地址:HDU 2473 这题曾经碰到过,没做出来. .如今又做了做,还是没做出来. ... 这题涉及到并查集的删除操作.想到了设一个虚节点,可是我把虚节点设为了要删除的点的父节点.一直是栈溢出,目 ...

  5. hdu 3018 图 欧拉回路 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=3018 题意  --许多蚂蚁 遍历一个图 每一条边只能走一次  问至少要把这些蚂蚁分为几群 说白了就是 至少几笔可 ...

  6. HDU 4775 Infinite Go 并查集

    题目链接:Infinite Go Infinite Go Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  7. 杭电 1181 变形课

    Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...

  8. hdu 1811(拓扑排序+并查集)

    解题思路: 拓扑排序的两个性质: ①如果一次入队入度为零的点大于1则说明拓扑排序序列不唯一 ②如果排序的总个数小于给定的个数,则说明存在回路 可以先把"="的两个数用并查集放在一个 ...

  9. hdu 1558(线段相交+并查集)

    题意:给你一些操作,P后边输入四个值,分别代表一条线段的起点.终点坐标,当输入Q时,后边输入一个整形值K,输出第k条线段所在的集合中包含的线段的个数. 解题思路:线段相交+并查集,sum[i]表示i所 ...

  10. hdu 1811Rank of Tetris (并查集 + 拓扑排序)

    1 /* 2 题意:这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B ...

最新文章

  1. 个人建议:VSCode和WebStorm中的“关闭其他所有编辑器、关闭左侧编辑器、关闭右侧编辑器”快捷键这么设置shift+alt+w、shift+alt+[、shift+alt+],你会受益匪浅
  2. 全球15个顶级技术类博客
  3. 树形dp ---- 树形换根dp F - The Maximum Subtree
  4. SpringBoot中常见的错误
  5. event级别设置Resumable Space Allocation
  6. vector 源码及使用
  7. 后缀树的构造方法-Ukkonen详解 [转]
  8. openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理
  9. 线性代数应该这样讲(三)-向量2范数与模型泛化
  10. 数据产品经理的5大阶段和6步作战模型
  11. C#与JavaScript中URL编码解码问题(转)
  12. RTKLIB学习:数据下载和数据转换
  13. Win10系统安装Ubuntu系统
  14. 《MATLAB 神经网络43个案例分析》:第14章 基于SVM的数据分类预测——意大利葡萄酒种类识别
  15. C# 支付宝小程序 ---小程序支付
  16. GPRS使用AT指令发短信拨号
  17. 浏览器缓存有哪些,通常缓存有哪几种
  18. 法拉利虚拟学院2010 服务器,法拉利虚拟学院
  19. 基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例
  20. 跟着小老弟来学习Kotlin中的逆变和协变

热门文章

  1. php 面向对象编程(class)之从入门到崩溃 基础篇
  2. linux 查询命令 批量替换多个文件
  3. nginx 域名跳转
  4. Spring Data JPA 常用 CRUD 操作汇总 及 关联关系( 操作 h2 内存数据)
  5. Matter-JS constraint 约束
  6. Android 六大布局之 GridLayout(网格布局)
  7. Mysql 数据库/表 备份 与 还原
  8. python 弧度与角度互转
  9. element的form表单中如何一行显示多el-form-item标签
  10. js复制隐藏域中的文字