列表

详情


NC216135. 牛客推荐系统开发之女装药水

描述

牛客的推荐系统开发人员中男女比例大约是10比1,大家听说你会制作女装药水,想找你稍微平衡一下男女比例。
现有一个的方格,每一个方格上都放有一个牛牛或者一个牛妹。你作为白魔法师,你可以做无数次以下操作:在任意一个方格(无论这个方格是牛牛还是牛妹)扔下一瓶女装药水,使得与这个方格距离小于等于一的方格(相邻的四个方格和当前的方格)的牛牛都变成牛妹,但由于你刚刚跨越业余门槛,这个药水会有一个副作用,也会使得作用范围内的所有牛妹变成牛牛。
你想知道能不能通过任意次操作使得全部方格上都是牛妹

输入描述

输入只有行,每一行一个长度为的字符串,以此表示这四个方格。其中表示牛妹,表示牛牛。

输出描述

如果可以通过任意次操作使得全部方格上都是牛妹,则输出YES,否则输出NO。

示例1

输入:

1010
1011
1010
0000

输出:

YES

说明:

可以在{(2,1)}{(2, 3)}处各扔一瓶女装药水。

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 4ms, 内存消耗: 400K, 提交时间: 2021-06-11 19:37:28

#include<bits/stdc++.h>
using namespace std;

char a[10][10];

int main()
{
	for(int i = 1;i <= 4;++ i)
		for(int j = 1;j <= 4;++ j)
		{
			scanf(" %c",&a[i][j]);
			a[i][j] -= '0';
		}
	
	for(int i = 1;i <= 3;++ i)
		for(int j = 1;j <= 4;++ j)
			if(a[i][j])
			{
				a[i + 1][j - 1] ^= 1;
				a[i + 1][j] ^= 1;
				a[i + 1][j + 1] ^= 1;
				a[i + 2][j] ^= 1;
			}

	for(int i = 1;i <= 4;++ i)
		if(a[4][i])
		{
			puts("NO");
			return 0;
		}
	puts("YES");
	return 0;
}

上一题