CF259A Little Elephant and Chess


题目传送门

思路:

既然要把整个棋盘变成这个样子:

WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW

那么你会发现:

B 与 W 是互相嵌套的

所以不管你怎么移动每一行棋盘,只要不是以下两种情况,那就不能组成需要的棋盘

BWBWBWBW 或 WBWBWBWB

所以只要每一行逐个判断是否与两种字符串的其中一个相同就可以了

AC CODE:

#include <bits/stdc++.h>
using namespace std;
string a[9];//棋盘的 8 行 
int main(){
	for(int i=1;i<=8;i++){//逐行输入,更加方便 
		cin>>a[i];//输入 
		if(a[i]!="WBWBWBWB"&&a[i]!="BWBWBWBW"){//如果当前行与需要的两个字符串都不相同 
			puts("NO");//输出 
			return 0;//直接结束程序 
		}
	}
	puts("YES");//每一行都判断完,没有结束程序则合法,输出 
	return 0;
}

文章作者: alex_liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 alex_liu !
  目录