bfs

#include<iostream>
#include<queue>
#include<cstring>
#include<cstdio>
using namespace std;
const int dx[]={-,,,},dy[]={,,-,};
queue<int>q;
int n,m,ans,x,y;
int used[][];
char board[][];
void bfs(int a,int b)
{
q.push(a);q.push(b);
used[a][b]=;
while(!q.empty())
{
int x=q.front();q.pop();
int y=q.front();q.pop();
for(int i=;i<;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(board[xx][yy]=='-')
{
ans++;break;
}
}
for(int i=;i<;i++)
{
int xx=x+dx[i],yy=y+dy[i];
if(!used[xx][yy]&&board[xx][yy]=='+')
{
q.push(xx);q.push(yy);used[xx][yy]=;
}
}
}
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
cin>>n>>m;
memset(used,,sizeof(used));
memset(board,'',sizeof(board));
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
cin>>board[i][j];
used[i][j]=;
if(board[i][j]=='+')
{
x=i;y=j;
}
}
bfs(x,y);
cout<<ans<<endl;
fclose(stdin);
fclose(stdout);
return ;
}

100114B的更多相关文章

随机推荐

  1. fragment的切换(解决REPLACE的低效)

    在项目中切换Fragment,一直都是用replace()方法来替换Fragment.但是这样做有一个问题,每次切换的时候Fragment都会重新实列化,重新加载一次数据,这样做会非常消耗性能用用户的 ...

  2. Screen 对象

    Screen 对象 Screen 对象 Screen 对象包含有关客户端显示屏幕的信息. 注意: 没有应用于 screen 对象的公开标准,不过所有浏览器都支持该对象. Screen 对象属性 属性 ...

  3. MySQL日志管理

    MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...

  4. js物理弹性窗口

    js物理弹性窗口 点击下载代码

  5. webstrom软件使用

    很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 选择 License server (20 ...

  6. win7 远程桌面关机

    在任务管理器中, 打开运行窗口, 执行 shutdown -s 命令, 将在30秒后关闭win7, 如果需要更快, 加上 -t 10 参数 关于 shutdown 的命令行说明: C:\Users\R ...

  7. ACA烤箱菜单各项温度

    说明书找不到了, 网上找到的各项温度说明, 记一个备用 casserole 218度 cake 171度 backery 177度 frozen food 238度 patato 232度 roast ...

  8. Winform调用系统的剪切,复制,粘贴文件功能

    // <summary> /// 复制或剪切文件至剪贴板(方法) /// </summary> /// <param name="files"> ...

  9. C#.NET 大型信息化系统集成快速开发平台 - 手机短信开发接口 4.0

    可以批量发信息给手机,相同的信息发给多个手机号码的效果图 已发送手机短信列表 可以批量发手机的功能,可以把先有的待发信息列表,直接通过批量发送功能发出 这个是设置发送模板公式的功能展示,可以设置发送的 ...

  10. Android性能优化之Systrace工具介绍(一) _&& Systrace生成的trace.html打开空白或者打不开的解决办法

    1.必须用Chrome打开 2.在mac电脑上,可能Chrome打开也是空白,解决办法是:在chrome地址栏中输入”chrome:tracing”,然后点击load按钮load你的trace.htm ...