变形课
来源:互联网 发布:万界淘宝商 编辑:程序博客网 时间:2024/05/19 16:38
A - 变形课
呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体.Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一个M(Mouse),你知道,如果他自己不能完成的话,他就只好向Hermione请教,并且被迫听一大堆好好学习的道理.
sosoonrivergoesthemgotmoonbeginbig0
Yes. Harry 可以念这个咒语:"big-got-them".
Hint
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;vector<int>e[30]; //定义一个int型的vector bool flag;bool vis[30]; void dfs(int x) //遍历x{ vis[x] = 1; //使vis[x]为1,标明已经遍历过 if(x == 12) //尾字母为m时停止调用,可以输出 { flag = 1; return ; } for(auto & v: e[x]) //将e[x]的值给v { if(!vis[v]) //如果没有遍历过,则进行下一步 dfs(v); }}int main(){ string str; while(cin>>str) { flag = 0; memset(vis, 0, sizeof(vis)); //使vis中所有的变量为0 for(int i = 0; i < 30; i++) e[i].clear(); while(str[0] != '0') //表示输入的首字母不为零时开始执行 { int len = str.length(); int be = (int)(str[0] - 'a'); //将字符串的首字母赋值给be int en = (int)(str[len - 1] - 'a'); //将字符串的尾字母赋值给en e[be].push_back(en); //将尾字母的int值放进e[be]中 cin>>str; } dfs(1); //遍历首字母的int值为1时的情况,即首字母为b的时候 if(flag) printf("Yes.\n"); else printf("No.\n"); } return 0;}
阅读全文
0 0
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- 变形课
- klocwork 12.3
- 有N个人围成一圈做游戏,规则如下:从某一个人开始报数,依次报1,2,3,喊到3的人出局。
- 学seo教程的结果与排名不成正比的原因分析
- hbase通过BulkLoad的方式快速导入海量数据
- QT界面设置背景图片
- 变形课
- 带logo的二维码Java生成代码
- TCP三次握手原理
- mysql错误代码对照表较完整
- MyBatis入门(一)
- JMeter正则表达式提取多个字符串
- convert-sorted-list-to-binary-search-tree
- css笔记
- 设计模式-工厂方法模式(创建型模式)