BFS。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define maxn 150
using namespace std;
queue <int> q;
int n,m,mx,my,map[maxn][maxn];
int dx[]={,-,-,-,,,,,},dy[]={,-,,,,,,-,-};
char s[maxn];
bool judge(int x,int y)
{
if ((x>=) && (x<=n) && (y>=) && (y<=m))
return true;
return false;
}
int bfs()
{
int mmx=;
q.push(mx);q.push(my);q.push();map[mx][my]=;
while (!q.empty())
{
int hx,hy,step;
hx=q.front();q.pop();hy=q.front();q.pop();step=q.front();q.pop();
for (int i=;i<=;i++)
{
int nowx=hx+dx[i],nowy=hy+dy[i];
if ((judge(nowx,nowy)) && (!map[nowx][nowy]))
{
map[nowx][nowy]=;
mmx=max(mmx,step+);
q.push(nowx);q.push(nowy);q.push(step+);
}
}
}
return mmx;
}
int main()
{
scanf("%d%d%d%d",&m,&n,&mx,&my);
swap(mx,my);mx=n-mx+;
for (int i=;i<=n;i++)
{
scanf("%s",s);
for (int j=;j<m;j++)
if (s[j]=='*') map[i][j+]=;
}
printf("%d\n",bfs());
return ;
}

最新文章

  1. curl模拟post,get,put,delete
  2. 整理的一些PHP面试题目
  3. 餐厅外卖app第三天
  4. C语言中常量
  5. ResourceBundle使用
  6. String比较
  7. MVC小系列(十七)【自定义验证规则给下拉框】
  8. Java 基本日期类使用——格式化(二)
  9. asp.net学习视频资料地址链接
  10. Python 单向链表、双向链表
  11. 密码疑云 (2)——RSA加密机制需要的数学知识
  12. leetcode — spiral-matrix
  13. 转 PV、TPS、QPS 计算方法
  14. HTML5的manifest 本地离线缓存
  15. Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
  16. 稀疏 部分 Checkout
  17. 20155227 2016-2017-2 《Java程序设计》第五周学习总结
  18. windows下PHP不能开启pgsql扩展的解决方法
  19. HihoCoder - 1051:补提交卡
  20. ubuntu &#39;yuan&#39; update

热门文章

  1. Masonry自动布局
  2. HDU 1978 How many ways(动态规划)
  3. javascript中onclick事件能调用多个方法吗
  4. ruby 学习 -- Array --2
  5. Shell脚本基础II
  6. iOS开发--3D Touch的基本使用
  7. 265. Paint House II
  8. Android 常用时间格式转换代码
  9. Model元数据解析
  10. SQL Server -&gt;&gt; GROUPING SETS, CUBE, ROLLUP, GROUPING, GROUPING_ID