【HRBUST - 1623】Relation(思维模拟,拆解字符串)

题干:

 一天,ikki在看书的时候发现书上有个类似于家谱状的插图,突然ikki想到了一个有趣的现象:有时候用某个人一连串

的关系描述另一个人的时候,最后可能还是他本身。例如:小明的爸爸的爸爸和小明的爷爷是同一个人。

  现在ikki给你出了个题目:如果用关于小明的一连串的关系去描述两个人,最后这两个人是否是同一个人呢? 

 

Input

多组测试数据。第一行一个正整数T表示数据的组数。

对于每组测试数据,输入两行长度不超过40的字符串来描述两个人和小明的关系,关系表示一共有6种

方式:’F’表示爸爸,’M’表示妈妈,’P’表示爷爷,’Q’表示奶奶,’K’表示外公,’G’表示外婆。

 

Output

对于每组数据,如果描述的是同一个人输出YES,否则输出NO,每组输出占一行。

Sample Input

2

PFMMF

FFFGF

KMFFMM

MFFFQM

Sample Output

YES

NO

解题报告:

   思路就是把爷爷奶奶姥姥姥爷拆成FF等等。。。就是把两辈关系拆开,,就解决了。

AC代码:

#include<cstdio>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
char s1[55],s2[55];
char q1[1000],q2[1000];
int top1,top2;
int main()
{int t;cin>>t;while(t--) {scanf("%s",s1);scanf("%s",s2);top1 = top2 = -1;for(int i = 0; i<strlen(s1); i++) {if(s1[i] == 'P') {q1[++top1] = 'F';q1[++top1] = 'F';}else if (s1[i] == 'Q') {q1[++top1] = 'F';q1[++top1] = 'M';}else if(s1[i] == 'K') {q1[++top1] = 'M';q1[++top1] = 'F';}else if(s1[i] == 'G') {q1[++top1] = 'M';q1[++top1] = 'M';}else q1[++top1] = s1[i];}for(int i = 0; i<strlen(s2); i++) {if(s2[i] == 'P') {q2[++top2] = 'F';q2[++top2] = 'F';}else if (s2[i] == 'Q') {q2[++top2] = 'F';q2[++top2] = 'M';}else if(s2[i] == 'K') {q2[++top2] = 'M';q2[++top2] = 'F';}else if(s2[i] == 'G') {q2[++top2] = 'M';q2[++top2] = 'M';}else q2[++top2] = s2[i];}q1[++top1] = '\0';q2[++top2] = '\0';if(!strcmp(q1,q2)) puts("YES");else puts("NO");}return 0 ;
}

编辑时间记录:这题我记得是当校赛出来着所以私密了一下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步步编写操作系统 67 系统调用的实现1-2 68

接上文&#xff1a; 系统调用的子功能要用eax寄存器来指定&#xff0c;所以咱们要看看有哪些系统调用啦&#xff0c;在linux系统中&#xff0c;系统调用是定义在/usr/include/asm/unistd.h文件中&#xff0c;该文件只是个统一的入口&#xff0c;指向了32位和64位两种版本。在a…

【HDU - 6662】Acesrc and Travel(树形dp,博弈dp)

题干&#xff1a; Acesrc is a famous tourist at Nanjing University second to none. During this summer holiday, he, along with Zhang and Liu, is going to travel to Hong Kong. There are nnspots in Hong Kong, and n−1n−1 bidirectional sightseeing bus routes …

一步步编写操作系统 69 汇编语言和c语言共同协作 70

由于有了上一节的铺垫&#xff0c;本节的内容相对较少&#xff0c;这里给大家准备了两个小文件来实例演示汇编语言和c语言相互调用。 会两种不同语言的人&#xff0c;只是掌握了同一件事物的两种表达方式。人在学习一种新语言时&#xff0c;潜意识里是建立了语言符号与事物形象…

一步步编写操作系统 71 直接操作显卡,编写自己的打印函数71-74

一直以来&#xff0c;我们在往屏幕上输出文本时&#xff0c;要么利用bios中断&#xff0c;要么利用系统调用&#xff0c;这些都是依赖别人的方法。咱们还用过一个稍微有点独立的方法&#xff0c;就是直接写显存&#xff0c;但这貌似又没什么含量。如今我们要写一个打印函数了&a…

【CodeForces - 208C 】Police Station(单源最短路条数,起点终点建图,枚举顶点)

题干&#xff1a; The Berland road network consists of n cities and of m bidirectional roads. The cities are numbered from 1 to n, where the main capital city has number n, and the culture capital — number 1. The road network is set up so that it is possi…

一步步编写操作系统 75 从显卡读取光标位置1

我们在打印字符时&#xff0c;通常都不用指定字符显示的坐标位置&#xff0c;大家也没觉得有什么奇怪&#xff0c;原因是字符是在当前光标的位置处显示的&#xff0c;而且光标的位置会一直更新顺延&#xff0c;我们的字符一直跟着光标走&#xff0c;似乎光标就是字符的导航一样…

【Chrome浏览器】常用快捷键整理

标签页和窗口快捷键 1. Ctrl n 打开新窗口 2. Ctrl t 打开新的标签页&#xff0c;并跳转到该标签页 3. Ctrl Shift t 重新打开最后关闭的标签页&#xff0c;并跳转到该标签页 4. Ctrl Tab 跳转到下一个打开的标签页 5. Ctrl Shift Tab 跳转到上一个打开的标签页 6.…

一步步编写操作系统 76 用汇编语言编写字符打印函数

之前咱们介绍显卡上那么多的寄存器终于发挥用处了&#xff0c;我们看看前文中介绍的表CRT Controller Data Registers中索引为0Eh的 Cursor Location High Register寄存器和索引为0Fh的Cursor Location Low Register寄存器&#xff0c;这两个寄存器都是8位长度。分别用来存储光…

【人工智能课程实验】 - 利用贝叶斯分类器实现手写数字 的识别

读入数据与预处理 因为老师给的文件无法直接读取&#xff0c;故从官网导入数据&#xff1a; 官网链接&#xff1a;http://www.cs.nyu.edu/~roweis/data.html 导入数据之后要对MATLAB文件进行读入&#xff1a; datasio.loadmat(trainfile) 对文件type一下&#xff1a; ty…

一步步编写操作系统 77 内联汇编与ATT语法简介

内联汇编 之前和大家介绍过了一种汇编方法&#xff0c;就是C代码和汇编代码分别编译&#xff0c;最后通过链接的方式结合在一起形成可执行文件。 另一种方式就是在C代码中直接嵌入汇编语言&#xff0c;强大的GCC无所不能&#xff0c;咱们本节要学习的就是这一种&#xff0c;它…

【Python学习】内置函数(不断更新)

关于常用在for循环中的range函数 python range() 函数可创建一个整数列表&#xff0c;一般用在 for 循环中。 函数语法 range(start, stop[, step]) 参数说明&#xff1a; start: 计数从 start 开始。默认是从 0 开始。例如range&#xff08;5&#xff09;等价于range&#…

【Python学习】 简单语法与常见错误(持续更新)

关于单引号和双引号 当输出的字符串内部没有单引号的时候&#xff0c;外面可以用单引号&#xff0c; 但是如果内部有了单引号&#xff0c;那么外部只能用双引号。 dict {Name: Zara, Age: 7, Class: First} print(dict) print (dict[Name]: , dict[Name]) print ("dic…