[蓝桥杯 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 根。
小明可以进行三种操作:
- 将三圈塑料棒都顺时针旋转一个单位。例如当前外圈从  
      
       
        
        
          0 
         
        
       
         0 
        
       
     0 点位置开始顺时针依次是 YRYGRYGRGGGG,中圈是RGRGGRRY,内圈是GGGR。那么顺时针旋转一次之后,外圈、中圈、内圈依次变为:GYRYGRYGRGGG、YRGRGGRR和RGGG。
- 将三圈塑料棒都逆时针旋转一个单位。例如当前外圈从  
      
       
        
        
          0 
         
        
       
         0 
        
       
     0 点位置开始顺时针依次是 YRYGRYGRGGGG,中圈是RGRGGRRY,内圈是GGGR。那么逆时针旋转一次之后,外圈、中圈、内圈依次变为:RYGRYGRGGGGY、GRGGRRYR和GGRG。
- 将三圈  
      
       
        
        
          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。那么轮换一次之后,外圈、中圈、内圈依次变为:RRYGRYGRGGGG、GGRGGRRY和YGGR。
小明的目标是把所有绿色移动到外圈、所有红色移动中圈、所有黄色移动到内圈。给定初始状态,请你判断小明是否可以达成目标?
输入格式
第一行包含一个整数 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 题。
 
 确保这六根棍有三根绿色,两根红色,一根黄色
#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;
}



















