题目描述

给你一个网格,有些点被#覆盖了不能再走,其他点是空地,现在牛牛和牛妹轮流开始将空地变成#
如果当前轮到的人操作之后左上角到右下角不存在通路了,当前操作的人就输了
通路只能是从左上角到右下角往右或者往下走的路径
牛牛先开始操作,如果双方都是绝顶聪明,输出最后谁赢
保证一开始给你的网格是存在一条左上角到右下角的通路的,当然,左上角与右下角都是空地。

输入描述:

第一行输入两个整数n,m(2≤ n,m ≤ 20)
接下来n行每行输入m个字符用来描述网格

输出描述:

输出赢的人的名字,"niuniu" 或者 "niumei"
题目解释:
这道题看似比较难,不好理解,但其实是很简单的,因为两人都是足够聪明,所以用一个for循环,计算出'.'的数量,减掉必要的通路外,如果是奇数,则是第一个选择的牛牛赢,反之则牛妹赢。

欢迎大家进行讨论,别忘记给小毅儿点个赞欧!

#include <cstdio>
#include <iostream>
using namespace std;
int main ()
{
int n,m;
char s;
cin >> n >> m;
int len=0 ;
for (int i=1;i<=m*n;i++)
{
cin >> s;
if(s=='.')len++;
}
if((len - m - n + 1)&1)cout << "niuniu" << endl;
else cout << "niumei" << endl;
//    if((len-m-n+1)%2==1)cout << "niuniu" << endl;
//    if((len-m-n+1)%2==0)cout << "niumei" << endl;
return 0;
}