链接:https://ac.nowcoder.com/acm/problem/21669
来源:牛客网

题目大意

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

保证一开始给你的网格是存在一条左上角到右下角的通路的,当然,左上角与右下角都是空地。

题目分析

发现任意一条路径其奇偶性都是一样的,
所以不妨取最短路经长度,我们只要判断除不可走点
之外的长度与最短路径长度差的奇偶性即可。

#include<bits/stdc++.h>
using namespace std;#define debug puts("YES");
#define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++)
#define ll long long#define lrt int l,int r,int rt
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define root l,r,rt
#define mst(a,b) memset((a),(b),sizeof(a))
#define pii pair<int,int>
#define fi first
#define se second
#define mk(x,y) make_pair(x,y)
const int mod=1e9+7;
const int maxn=1e2;
const int ub=1e6;
ll powmod(ll x,ll y){ll t; for(t=1;y;y>>=1,x=x*x%mod) if(y&1) t=t*x%mod; return t;}
ll gcd(ll x,ll y){return y?gcd(y,x%y):x;}
/*
发现任意一条路径其奇偶性都是一样的,
所以不妨取最短路经长度,我们只要判断除不可走点
之外的长度与最短路径长度差的奇偶性即可。
*/int n,m;
char s[maxn][maxn];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int vis[maxn][maxn];
void bfs(){queue<int> p;vis[0][0]=1;p.push(0);while(!p.empty()){int tp=p.front();p.pop();int tx=tp/m,ty=tp%m;rep(i,0,4){int xx=tx+dx[i];int yy=ty+dy[i];if(xx<0||xx>=n||yy<0||yy>=m||s[xx][yy]=='#') continue;if(vis[xx][yy]) continue;vis[xx][yy]=vis[tx][ty]+1;p.push(xx*m+yy);}}
}
int main(){scanf("%d%d",&n,&m);rep(i,0,n) scanf("%s",s[i]);bfs();int ans=n*m-vis[n-1][m-1];rep(i,0,n) rep(j,0,m) if(s[i][j]=='#') ans--;if(ans&1) puts("niuniu");else puts("niumei");return 0;
}

Newcoder 21669 牛牛VS牛妹 (博弈+思维)相关推荐

  1. 牛客 - 牛牛与牛妹的约会(贪心)

    题目链接:点击查看 题目大意:初始时给出 x 和 y 两个点,都在 x 轴上,现在要让点 x 尽可能快的去到点 y 的位置,x 可以有两种操作: 走任意时间的距离,如果花费了 time 的时间,那么可 ...

  2. 牛客3006D-牛牛与牛妹的约会-思维

    链接:https://ac.nowcoder.com/acm/contest/3006/D 来源:牛客网 题目描述: 牛牛在辛苦的一天的比赛之后,要去找牛妹玩,其实牛妹那天也在比赛.他为了找到牛妹,要 ...

  3. 牛客——牛妹与牛牛的游戏

    牛客--牛妹与牛牛的游戏 一天,牛妹找牛牛做一个游戏,牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 1.在当前数字的基 ...

  4. 牛牛和牛可乐的赌约2

    来源:牛客网: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 牛牛感觉在上一次赌约中,情 ...

  5. 牛客小白月赛28 B.牛牛和牛可乐的赌约2

    牛客小白月赛28 B.牛牛和牛可乐的赌约2 题目链接 题目描述 牛牛感觉在上一次赌约中,情况对于自己非常不利,所以决定再赌一场. 这时候,牛蜓队长出现了:第一,绝对不意气用事:第二,绝对不漏判任何一件 ...

  6. 牛客网习题之牛妹的蛋糕

    牛妹的蛋糕 简单分析题目: 已知第n天的时候还剩一个蛋糕,假设第n-1天 也就是前一天有x个蛋糕 那么 x-x*(1/3)-1=1 右边的1是后一天的数目 所以x=2*3/2=3 所以递推得到假设算出 ...

  7. 牛客小白月赛28 A牛牛和牛可乐的赌约 (数论-费马小定理)

    题目 A牛牛和牛可乐的赌约 题目链接 传送门 题解 注意阅读题目是计算牛牛输的概率. 需要掌握的知识点 快速幂 费马小定理 分数取模 首先我们容易知道 牛牛 赢的概率是 1 n m \frac{1}{ ...

  8. 牛妹的字符串(删除ascii码最小的k个字母)

    牛客网链接:贝壳找房校招笔试真题_算法工程师_牛客网 牛妹拿到了一个只由小写字母组成的字符串s,接下来将字符串执行k次操作,每次操作都会把s中ASCII码最小的字母从s中删除,请返回k次操作之后的字符 ...

  9. 用Java解决牛客网题目NC510牛妹的礼物

    题目描述 众所周知,牛妹有很多很多粉丝,粉丝送了很多很多礼物给牛妹,牛妹的礼物摆满了地板. 地板是N\times MN×M的格子,每个格子有且只有一个礼物,牛妹已知每个礼物的体积. 地板的坐标是左上角 ...

最新文章

  1. c++ 图的连通分量是什么_图与图论基本概念(图论算法入门)
  2. 新手入门Web前端要掌握的4项基础技能
  3. 操作系统实验报告2:Linux 下 x86 汇编语言1
  4. 剑指offer の 1-10 之javascript实现
  5. 为什么要用非关系数据库?
  6. 博士学位被撤三天后,她的大学教职也被开除!
  7. Ampere 收购 OnSpecta,加速对云原生应用程序的 AI 推理
  8. lcd图片转二进制工具_辽宁2.8寸LCD屏价格,测距仪LCD显示屏_思迈微
  9. C/C++ select fd_set解释
  10. mysql下拉框回显_下拉框的回显 (修改时候)
  11. 在git 服务器挂载、创建新的项目、克隆新的项目
  12. 华为的IPsec ×××主模式(MAIN mode)
  13. ubuntu14.04 server 安装docker
  14. 在qemu下实战linux内核
  15. [AutoVue开发手册]第一篇——自定义Applet脚本
  16. Enter键绑定按钮或方法
  17. mysql查询同名同姓重名人数,全国同名同姓人数在线查询,重名率查询
  18. 软件测试常见英文单词汇总
  19. vs警告 当前源代码跟内置的版本不一致解决办法
  20. 微信文件用qq浏览文件服务器,原来微信和QQ的文件是可以相互传输的!现在才知道,真是太可惜了...

热门文章

  1. 阿里云国际版Windows服务器磁盘空间不足该怎么办?
  2. 基本凝聚层次聚类算法
  3. IDEA 方法设置快速注释【便捷】
  4. 广义表-求广义表深度,建立广义表,复制广义表
  5. 关于Word中InsertXML的说明(Word ML)
  6. php 打开微信对话框,PHP_PHP控制前台弹出对话框的实现方法,应用场景: 微信授权登 - phpStudy...
  7. 微信调用jssdk在网页端实现调用扫一扫,java+jsp
  8. 区块链共识机制与分布式一致性算法
  9. java实现二维数组推箱子小游戏
  10. 大学计算机专业老师受人高吗,为什么大学里的计算机老师那么厉害,却不去当程序员拿高薪?...