HDU 1181.变形课-并查集
变形课
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 31338 Accepted Submission(s): 11290
Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
Hint
Harry 可以念这个咒语:"big-got-them".
代码:
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.变形课-并查集相关推荐
- HDU 1181 变形课(dfs)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submi ...
- HDU 1181 变形课
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1181 此题多种方法.比如说Flyod传递闭包 就能搞定 这里只写DFS和BFS 熟悉下.只有DFS是我写 ...
- [HDU] 1181 变形课-简单建模后广搜
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1181 方法:以所有咒语看做一条起点为首字母,终点为末字母的有向边来建立有向图.然后在图中判断目标路径 ...
- HDU 2473 Junk-Mail Filter(并查集的删除操作)
题目地址:HDU 2473 这题曾经碰到过,没做出来. .如今又做了做,还是没做出来. ... 这题涉及到并查集的删除操作.想到了设一个虚节点,可是我把虚节点设为了要删除的点的父节点.一直是栈溢出,目 ...
- hdu 3018 图 欧拉回路 并查集
http://acm.hdu.edu.cn/showproblem.php?pid=3018 题意 --许多蚂蚁 遍历一个图 每一条边只能走一次 问至少要把这些蚂蚁分为几群 说白了就是 至少几笔可 ...
- HDU 4775 Infinite Go 并查集
题目链接:Infinite Go Infinite Go Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- 杭电 1181 变形课
Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒 ...
- hdu 1811(拓扑排序+并查集)
解题思路: 拓扑排序的两个性质: ①如果一次入队入度为零的点大于1则说明拓扑排序序列不唯一 ②如果排序的总个数小于给定的个数,则说明存在回路 可以先把"="的两个数用并查集放在一个 ...
- hdu 1558(线段相交+并查集)
题意:给你一些操作,P后边输入四个值,分别代表一条线段的起点.终点坐标,当输入Q时,后边输入一个整形值K,输出第k条线段所在的集合中包含的线段的个数. 解题思路:线段相交+并查集,sum[i]表示i所 ...
- hdu 1811Rank of Tetris (并查集 + 拓扑排序)
1 /* 2 题意:这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B ...
最新文章
- 个人建议:VSCode和WebStorm中的“关闭其他所有编辑器、关闭左侧编辑器、关闭右侧编辑器”快捷键这么设置shift+alt+w、shift+alt+[、shift+alt+],你会受益匪浅
- 全球15个顶级技术类博客
- 树形dp ---- 树形换根dp F - The Maximum Subtree
- SpringBoot中常见的错误
- event级别设置Resumable Space Allocation
- vector 源码及使用
- 后缀树的构造方法-Ukkonen详解 [转]
- openWRT自学---针对backfire版本的主要目录和文件的作用的分析整理
- 线性代数应该这样讲(三)-向量2范数与模型泛化
- 数据产品经理的5大阶段和6步作战模型
- C#与JavaScript中URL编码解码问题(转)
- RTKLIB学习:数据下载和数据转换
- Win10系统安装Ubuntu系统
- 《MATLAB 神经网络43个案例分析》:第14章 基于SVM的数据分类预测——意大利葡萄酒种类识别
- C# 支付宝小程序 ---小程序支付
- GPRS使用AT指令发短信拨号
- 浏览器缓存有哪些,通常缓存有哪几种
- 法拉利虚拟学院2010 服务器,法拉利虚拟学院
- 基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例
- 跟着小老弟来学习Kotlin中的逆变和协变