【CROC 2016 - Elimination RoundA】【水题 循环暴力】Amity Assessment 2x2华容道

本文主要是介绍【CROC 2016 - Elimination RoundA】【水题 循环暴力】Amity Assessment 2x2华容道,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Amity Assessment
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Bessie the cow and her best friend Elsie each received a sliding puzzle on Pi Day. Their puzzles consist of a 2 × 2 grid and three tiles labeled 'A', 'B', and 'C'. The three tiles sit on top of the grid, leaving one grid cell empty. To make a move, Bessie or Elsie can slide a tile adjacent to the empty cell into the empty cell as shown below:

In order to determine if they are truly Best Friends For Life (BFFLs), Bessie and Elsie would like to know if there exists a sequence of moves that takes their puzzles to the same configuration (moves can be performed in both puzzles). Two puzzles are considered to be in the same configuration if each tile is on top of the same grid cell in both puzzles. Since the tiles are labeled with letters, rotations and reflections are not allowed.

Input

The first two lines of the input consist of a 2 × 2 grid describing the initial configuration of Bessie's puzzle. The next two lines contain a2 × 2 grid describing the initial configuration of Elsie's puzzle. The positions of the tiles are labeled 'A', 'B', and 'C', while the empty cell is labeled 'X'. It's guaranteed that both puzzles contain exactly one tile with each letter and exactly one empty position.

Output

Output "YES"(without quotes) if the puzzles can reach the same configuration (and Bessie and Elsie are truly BFFLs). Otherwise, print "NO" (without quotes).

Examples
input
AB
XC
XB
AC
output
YES
input
AB
XC
AC
BX
output
NO
Note

The solution to the first sample is described by the image. All Bessie needs to do is slide her 'A' tile down.

In the second sample, the two puzzles can never be in the same configuration. Perhaps Bessie and Elsie are not meant to be friends after all...

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<string>
#include<ctype.h>
#include<math.h>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<bitset>
#include<algorithm>
#include<time.h>
using namespace std;
void fre() { freopen("c://test//input.in", "r", stdin); freopen("c://test//output.out", "w", stdout); }
#define MS(x,y) memset(x,y,sizeof(x))
#define MC(x,y) memcpy(x,y,sizeof(x))
#define MP(x,y) make_pair(x,y)
#define ls o<<1
#define rs o<<1|1
typedef long long LL;
typedef unsigned long long UL;
typedef unsigned int UI;
template <class T1, class T2>inline void gmax(T1 &a, T2 b) { if (b>a)a = b; }
template <class T1, class T2>inline void gmin(T1 &a, T2 b) { if (b<a)a = b; }
const int N = 0, M = 0, Z = 1e9 + 7, ms63 = 0x3f3f3f3f;
char s[10];
char t[10];
char w[10];
char v[10];
bool solve()
{int n = 0;for (int i = 0; i < 4; ++i)if (t[i] != 'X')w[n++] = t[i];for (int i = 0; i < 4; ++i){int m = 0;for (int j = 0; j < 4; ++j)if (s[i + j] != 'X')v[m++] = s[i+j];int j; for (j = 0; j < 3; ++j)if (v[j] != w[j])break;if (j == 3)return 1;}return 0;
}
int Xsolve()
{char s[3][3];//还是要开+1sizeint a[2];for (int o = 0; o < 2; ++o){scanf("%s%s", s[0], s[1]);if (s[0][0] == 'X')a[o] = s[1][0] - s[0][1];else if (s[0][1] == 'X')a[o] = s[0][0] - s[1][1];else if (s[1][1] == 'X')a[o] = s[0][1] - s[1][0];else if (s[1][0] == 'X')a[o] = s[1][1] - s[0][0];}return (a[0]+3)%3 == (a[1]+3)%3;
}
int main()
{puts(Xsolve() ? "YES" : "NO"); return 0;while (~scanf("%s%s%s%s", s,s+2,t,t+2)){swap(s[2], s[3]);swap(t[2], t[3]);for (int i = 0; i < 4; ++i)s[i + 4] = s[i];puts(solve() ? "YES" : "NO");}return 0;
}
/*
【trick&&吐槽】
做水题就要拿出消灭水题的样子>_<【题意】
给你两个2*2的格子图。
对于每个格子图,有3个格子是字符ABC,剩下一个格子是空的X。
我们每次可以把一个格子移动到其相邻的空格中。
问你两个格子图是否可以移成相同的图样。【类型】
水题【分析】
因为对于这种模型,再怎么移也同样保留原始的时针顺序。
于是我们成环,暴力匹配就好啦。
另外一种解法是我们查看X两边字符的数值关系。*/


这篇关于【CROC 2016 - Elimination RoundA】【水题 循环暴力】Amity Assessment 2x2华容道的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/610413

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

uva 10055 uva 10071 uva 10300(水题两三道)

情歌两三首,水题两三道。 好久没敲代码了为暑假大作战热热身。 uva 10055 Hashmat the Brave Warrior 求俩数相减。 两个debug的地方,一个是longlong,一个是输入顺序。 代码: #include<stdio.h>int main(){long long a, b;//debugwhile(scanf("%lld%lld", &

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

计蒜客 Half-consecutive Numbers 暴力打表找规律

The numbers 11, 33, 66, 1010, 1515, 2121, 2828, 3636, 4545 and t_i=\frac{1}{2}i(i+1)t​i​​=​2​​1​​i(i+1), are called half-consecutive. For given NN, find the smallest rr which is no smaller than NN

校验码:奇偶校验,CRC循环冗余校验,海明校验码

文章目录 奇偶校验码CRC循环冗余校验码海明校验码 奇偶校验码 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据检验码的码距。 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。 奇校验:整个校验码中1的个数为奇数 偶校验:整个校验码中1的个数为偶数 奇偶校验,可检测1位(奇数位)的错误,不可纠错。

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

Spring是如何解决循环依赖?

现象解释: 在Spring框架中,循环依赖(Circular Dependency)是指两个或多个Bean之间相互依赖,形成了一个循环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。Spring通过多种机制解决循环依赖问题,具体来说,主要有以下几种方式: 1.三级缓存机制 Spring容器在实例化Bean时使用了三级缓存来解决循环依赖,主要涉及三个缓存结构: 一级

FPGA开发:条件语句 × 循环语句

条件语句 if_else语句 if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。 if(表达式)语句; 例如: if(a>b) out1=int1; if(表达式)         语句1; else         语句2; 例如: if(a>b)out1=int1;elseout1=int2; if(表达式1) 语句1; els

shell循环sleep while例子 条件判断

i=1# 小于5等于时候才执行while [ ${i} -le 5 ]doecho ${i}i=`expr ${i} + 1`# 休眠3秒sleep 3doneecho done 参考 http://c.biancheng.net/cpp/view/2736.html

【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯

功能说明 本文将以JavaScript代码为实例,讲解如何通过JavaScript代码调用博灵语音通知终端 A4实现声光语音告警。主要博灵语音通知终端如何实现无线循环播报或者周期播报的功能。 本代码实现HTTP接口的声光语音播报,并指定循环次数、播报内容。由于通知终端采用TTS语音合成技术,所以本次案例中无需预先录制音频。 代码实战 为了通过JavaScript调用博灵语音通知终端,实现HT