[蓝桥杯 2019 国 B] 解谜游戏

[蓝桥杯 2019 国 B] 解谜游戏

题目背景

题目描述

小明正在玩一款解谜游戏。谜题由 24 24 24 根塑料棒组成,其中黄色塑料棒 4 4 4 根,红色 8 8 8 根,绿色 12 12 12 根 (后面用 Y 表示黄色、R 表示红色、G 表示绿色)。初始时这些塑料棒排成三圈,如上图所示,外圈 12 12 12 根,中圈 8 8 8 根,内圈 4 4 4 根。

小明可以进行三种操作:

  1. 将三圈塑料棒都顺时针旋转一个单位。例如当前外圈从 0 0 0 点位置开始顺时针依次是 YRYGRYGRGGGG,中圈是 RGRGGRRY,内圈是 GGGR。那么顺时针旋转一次之后,外圈、中圈、内圈依次变为:GYRYGRYGRGGGYRGRGGRRRGGG
  2. 将三圈塑料棒都逆时针旋转一个单位。例如当前外圈从 0 0 0 点位置开始顺时针依次是 YRYGRYGRGGGG,中圈是 RGRGGRRY,内圈是 GGGR。那么逆时针旋转一次之后,外圈、中圈、内圈依次变为:RYGRYGRGGGGYGRGGRRYRGGRG
  3. 将三圈 0 0 0 点位置的塑料棒做一个轮换。具体来说:外圈 0 0 0 点塑料棒移动到内圈 0 0 0 点,内圈 0 0 0 点移动到中圈 0 0 0 点,中圈 0 0 0 点移动到外圈 0 0 0 点。例如当前外圈从 0 0 0 点位置开始顺时针依次是 YRYGRYGRGGGG,中圈是 RGRGGRRY,内圈是 GGGR。那么轮换一次之后,外圈、中圈、内圈依次变为:RRYGRYGRGGGGGGRGGRRYYGGR

小明的目标是把所有绿色移动到外圈、所有红色移动中圈、所有黄色移动到内圈。给定初始状态,请你判断小明是否可以达成目标?

输入格式

第一行包含一个整数 T T T,代表询问的组数。 ( 1 ≤ T ≤ 100 ) (1 \le T \le 100) (1≤T≤100)。

每组询问包含 3 3 3 行:

第一行包含 12 12 12 个大写字母,代表外圈从 0 0 0 点位置开始顺时针每个塑料棒的颜色。

第二行包含 8 8 8 个大写字母,代表中圈从 0 0 0 点位置开始顺时针每个塑料棒的颜色。

第三行包含 4 4 4 个大写字母,代表内圈从 0 0 0 点位置开始顺时针每个塑料棒的颜色。

输出格式

对于每组询问,输出一行 YES 或者 NO,代表小明是否可以达成目标。

样例 #1

样例输入 #1

复制代码
2
GYGGGGGGGGGG
RGRRRRRR
YRYY
YGGGRRRRGGGY
YGGGRRRR
YGGG

样例输出 #1

复制代码
YES
NO

提示

蓝桥杯 2019 年国赛 B 组 H 题。

确保这六根棍有三根绿色,两根红色,一根黄色

cpp 复制代码
#include <iostream>
using namespace std;
#include <bits/stdc++.h>

int t;
string a,b,c;
int cnt[110];
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>a>>b>>c;
		bool flag=1;//有两组 如果定义在外面,flag的值会在第一轮被赋予0 然后一直不会改变
	   for(int i=0;i<4;i++)//通过遍历内部的小圈
	   	{
	   		
	   		memset(cnt,0,sizeof(cnt));//初始化桶
		++cnt[a[i]],++cnt[b[i]],++cnt[c[i]];
		++cnt[b[i+4]],++cnt[a[i+4]],++cnt[a[i+8]];
		if(cnt['G']!=3||cnt['R']!=2||cnt['Y']!=1)//如果这6个固定的圈不符合要求 则一定过不了
		{
			flag=0;
		  break;
		}
		
	  }
		
		
	cout<<(flag?"YES":"NO")<<'\n';//判断

	}	


	return 0;
}
相关推荐
智者知已应修善业21 小时前
【c语言蓝桥杯计算卡片题】2023-2-12
c语言·c++·经验分享·笔记·算法·蓝桥杯
hansang_IR21 小时前
【题解】洛谷 P2330 [SCOI2005] 繁忙的都市 [生成树]
c++·算法·最小生成树
Croa-vo1 天前
PayPal OA 全流程复盘|题型体验 + 成绩反馈 + 通关经验
数据结构·经验分享·算法·面试·职场和发展
AndrewHZ1 天前
【图像处理基石】 怎么让图片变成波普风?
图像处理·算法·计算机视觉·风格迁移·cv
无极小卒1 天前
如何在三维空间中生成任意方向的矩形内部点位坐标
开发语言·算法·c#
FMRbpm1 天前
链表中出现的问题
数据结构·c++·算法·链表·新手入门
Kuo-Teng1 天前
LeetCode 206: Reverse Linked List
java·算法·leetcode·职场和发展
庸子1 天前
Kubernetes调度器深度解析:从资源分配到亲和性策略的架构师之路
java·算法·云原生·贪心算法·kubernetes·devops
Sunhen_Qiletian1 天前
YOLOv2算法详解(上篇):从经典到进化的目标检测之路
算法·yolo·目标检测
QTreeY1231 天前
detr目标检测+deepsort/strongsort/bytetrack/botsort算法的多目标跟踪实现
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪