变形课(并查集)
来源:互联网 发布:球球大作战隐身软件 编辑:程序博客网 时间:2024/06/01 10:21
变形课
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 16989 Accepted Submission(s): 6125
Problem Description
呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体.
Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
Input
测试数据有多组。每组有多行,每行一个单词,仅包括小写字母,是Harry所会的所有咒语.数字0表示一组输入结束.
Output
如果Harry可以完成他的作业,就输出"Yes.",否则就输出"No."(不要忽略了句号)
Sample Input
sosoonrivergoesthemgotmoonbeginbig0
Sample Output
Yes.Harry 可以念这个咒语:"big-got-them".HintHint
Source
Gardon-DYGG Contest 1
简单并查集,到最后查一下12的老大是否为1就可以了!
#include<cstdio>#include<cstring>#include<vector>#include<iostream>const int maxs=30;using namespace std;int a[maxs];int Find(int x){ int r=x; while(r!=a[r]) r=a[r]; /* int i=x,j; while(a[i]!=r) { j=a[i]; a[i]=r; i=j; }*/ return r;}//这个就是找老大的函数,什么时候停止?就是当一个人的老大是他自己的时候!void mix(int x,int y){ int fx=Find(x),fy=Find(y);//首先要找到他们各自的老大 if(fx!=fy)//如果他们的老大不相等,要合并就必须其中的一个老大向另外一个老大称老大 { a[fy]=fx; // sum++; }}int main(){ char s[25]; int stl,i,c1,c2; while(cin>>s) { for(i=0;i<maxs;i++) { a[i]=i; } while(cin>>s) { if(s[0]!='0') { stl=strlen(s); c1=s[0]-'a';c2=s[stl-1]-'a'; mix(c1,c2); } else { break; /* dfs(1); if(vis[12]) { cout<<"Yes."<<endl; } else { cout<<"No."<<endl; }这个写里面是错误的,写在外面就正确了!*/ } } if(Find(12)==1) { cout<<"Yes."<<endl; } else { cout<<"No."<<endl; } }}
0 0
- 变形课(并查集)
- 并查集变形
- HDU1181 变形课(搜索或并查集)
- hdu1181(变形课)-并查集
- 【HDU1181】变形课(并查集)
- 并查集变形 - 敌人
- hdoj 1181 problem变形课(并查集)
- HLJUOJ1002(并查集变形求结点高度)
- hdu 3635(并查集+路径压缩变形)
- 【Codeforces】-DZY Loves Chemistry(并查集变形)
- Find them, Catch them(并查集的变形)
- zoj3261 并查集---略有变形
- hdu 4496 并查集的变形
- 【POJ1456】【并查集变形】【技巧】
- Hdu 1181 变形课 两种解法 并查集+DFS
- You are my brother (并查集之变形——查找步数)
- HDU 3234 Exclusive-OR 并查集变形
- poj 1611(简单并查集的变形)
- JAVA 计算地球上任意两点(经纬度)距离
- 10005---Java事务(七) - 分布式事务 - spring + JTA + jotm
- substring与substr与slice区别
- 使用Spring处理自定义注解
- 112 指数运算
- 变形课(并查集)
- javascript跨域访问探索之旅
- Lua和C++交互总结(很详细)
- B-树、B+树、红黑树
- 国外别墅后期PS教程洛阳生
- 淘宝分布式配置管理服务Diamond
- Django项目国际化
- mybatis generator自动生成代码时 只生成了insert 而没有其他的
- linux下查看cpu物理个数和逻辑个数