P8700 [蓝桥杯 2019 国 B] 解谜游戏 题解
这道题纯纯思维题,找好规律。
题意:
打乱后还原外,中,内圈的形式。
思路:
初始化三个桶,用三个桶(外,中,内)找完规律累加就完了,再来判断每一次轮回,零点对应外,中,内圈的颜色中,是否绿色有 3 个,红色有 2 个,黄色有 1 个,如是的话, true ,最后判断一下 YES or NO 。
AC code
#include <bits/stdc++.h>
using namespace std;
int m[1005];
int t;
string a,b,c; //定义三个字符串,表示外,中,内圈。
int main(){
cin>>t;
while(t--){
cin>>a>>b>>c;
bool flag=true; //来随之字符串是否满足条件,判断输出啥子
memset(m,0,sizeof(m));
for(int i=0;i<4;i++){ //字符串下标为0
memset(m,0,sizeof(m));//初始化
//累加:
m[a[i]]++;
m[b[i]]++;
m[c[i]]++;
m[a[i+4]]++;
m[b[i+4]]++;
m[a[i+8]]++;
if(m['G']!=3||m['R']!=2||m['Y']!=1){//判断是否满足 ,如不满足,flag返回false
flag = false;
break;
}
}
//随flag变化而输出
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
撒花完结!!