题意;如上,注意王子有可能跨越墙,前提使正好挨着墙。
思路:dfs王子和公主,开一个三维数组分别用vis[x][y][0],vis[x][y][1]标记王子和公主走到的点。
若存在二点相交即(vis[x][y][0]&&vis[x][y][1])==1,则说明王子可以预见公主。

5 5
#...#
w..##
...#.
#..s.
...##
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<queue>
#include<cmath>
#include<cctype>
#include<stack>
#include<map>
#include<string>
#include<cstdlib>
#define ll long long
#define N 100010
using namespace std;
const ll maxn = 1e2 + 5;
//ll a[maxn],b[maxn];
//bool vis[maxn];
int ans[maxn];
vector<int>v[maxn];
int n, m;
bool vis[maxn][maxn][2];
bool flag;
char a[maxn][maxn];
void dfs(int x,int y,int d)
{if(x>=n||x<0||y>=m||y<0||vis[x][y][d]||a[x][y]=='#')return ;vis[x][y][d]=true;dfs(x+(2-d),y,d);dfs(x-(2-d),y,d);dfs(x,y+(2-d),d);dfs(x,y-(2-d),d);return;
}
int main() {int x, y, tx, ty;cin >> n >> m;for(int i = 0; i < n; i++)cin >> a[i];for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)if(a[i][j] == 'w') {x = i;y = j;} else if(a[i][j] == 'g') {tx = i;ty = j;}bool flag=false;dfs(x, y, 0);dfs(tx, ty, 1);for(int i = 0; i < n; i++)for(int j = 0; j < m; j++)if(vis[i][j][0]&&vis[i][j][1])flag=true;if(flag)cout<<"yes"<<endl;else cout<<"no"<<endl;return 0;
}

计蒜客 王子救公主 dfs相关推荐

  1. java王子救公主的游_计蒜客 王子救公主(DFS)

    一天,蒜头君梦见自己当上了王子,但是不幸的是,自己的公主被可恶的巫婆抓走了.于是蒜头君动用全国的力量得知,自己的公主被巫婆抓进一个迷宫里面.由于全国只有蒜头君自己可以翻越迷宫外的城墙,蒜头君便自己一人 ...

  2. 计蒜客:王子救公主---dfs

    题目描述: 一天,蒜头君梦见自己当上了王子,但是不幸的是,自己的公主被可恶的巫婆抓走了.于是蒜头君动用全国的力量得知,自己的公主被巫婆抓进一个迷宫里面.由于全国只有蒜头君自己可以翻越迷宫外的城墙,蒜头 ...

  3. 王子救公主 (计蒜客)一道简单DFS

    蓝桥杯不能粘贴  只能截图.. 这道题目很简单,主要想清楚 只要存在王子和公主都能到达的点,王子就能救出公主(此时必定有一个时刻可以让他们相遇) #include <bits/stdc++.h& ...

  4. 计蒜客-T1771-文具店-DFS

    题目描述: 蒜头君来到文具店,选择了k 支自己喜欢的水彩笔,并抄下了它们的价格.可是到结算时,他发现自己抄价格时抄得太密集,以至于所有价格连成了一个数字串.老板想和蒜头君开个玩笑,于是对他说:&quo ...

  5. 计蒜客-青出于蓝胜于蓝 dfs+树状数组

    题目描述: 武当派一共有 n人,门派内 n 人按照武功高低进行排名,武功最高的人排名第 1,次高的人排名第 2,... 武功最低的人排名第 n.现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都 ...

  6. 计蒜客-踏青(DFS)

    蒜头君和他的朋友周末相约去召唤师峡谷踏青.他们发现召唤师峡谷的地图是由一块一块格子组成的,有的格子上是草丛,有的是空地.草丛通过上下左右 444 个方向扩展其他草丛形成一片草地,任何一片草地中的格子都 ...

  7. [计蒜客][dfs]中国象棋

    题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 深度优先搜索 题目描述 样例读入 .#....#S# ..#.#.#.. ..##.#..# ......##. ...T..... ... ...

  8. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  9. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

最新文章

  1. GitHub引入联合提交者功能
  2. 我的同学是计算机作文,同学相见作文
  3. SpringCloud面试题分享
  4. 专家:不仅人脸识别,信息验证、生物特征都不可靠
  5. angular语言前端开发_2020年前端Angular招聘-前端Angular招聘求职信息-拉勾招聘
  6. mysql workbench安装出错_MYSQL及MySQL WORKBENCH安装过程遇到的问题及处理方法
  7. linux修改tomcat时间命令,Linux下把tomcat日志按日期自动分割
  8. python用户输出怎么命名变量_python变量及用户交互,用户名格式化输出
  9. java poi 读取Excel中的手机号
  10. c语言循环语句实例解释,c语言循环语句(c语言循环语句实例)
  11. 华为手机怎样才算激活了_华为手机激活是怎么回事
  12. SqlServer 备份数据库语句
  13. 两种方式实现序列检测:三段式状态机、移位寄存器+比较器(含testbench激励代码)
  14. gc cr block lost
  15. pyqt使用graphicsView显示图片
  16. ps,ai,cdr平面设计教程,全套!基础到精通,小编亲看教程,推荐!
  17. linux下读取ntfs数据,在Linux中读取NTFS分区上的数据
  18. pytorch中Parameter()介绍
  19. 双剑合璧:springboot打包将vue引入
  20. js设置button和input不可点击

热门文章

  1. N 上CR SPCSS00383586
  2. OAuth2学习(一)——初识OAuth2
  3. ACM斗牛游戏算法JAVA实现
  4. 一份关于人工智能、机器学习和大数据的报告
  5. leetcode844 比较含退格的字符串(python)
  6. 远程开启或唤醒休眠的计算机
  7. 融合模型权限管理设计方案
  8. Stateful Firewall和SPI(stateful packet inspection) Firewall介绍
  9. Kerberos认证介绍及黄金票据和白银票据
  10. Spring全家桶-Spring Security之自定义数据库表认证和鉴权