代码参考网址:http://blog.csdn.net/slience_perseverance/article/details/6706354

试题分析:

本题是研究red and black的一个标题,实际上可以通过深度优先搜索的方式进行查找。前后左右的方格只要不是红色的就可以进行计数那么最后可以到达的个数会有多少呢?本人菜鸟一枚,确实解题有很大的困难,所以在参考别人的AC之后有很大的感触,这里先将代码粘贴出来后分析吧。

//关于BFS问题解答
//参考网址
//http://blog.csdn.net/slience_perseverance/article/details/6706354
//习题zoj2165
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

struct node
{
int x,y;
}q[400+10];
struct node P,N;
//直接自己定义了方向
int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
char str[25][25];
int flag[25][25];
int main()
{
int c,r,i,j,front,rear;
while(scanf("%d%d",&c,&r)!=EOF,c*c+r*r)
{
memset(flag,0,sizeof(flag));
for(i=0;i<r;i++)scanf("%s",str[i]);
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)

if(str[i][j]=='@')break;
if(str[i][j]=='@')break;
}
N.x = i;
N.y = j;

flag[i][j] = 1;
q[0] = N;
front = 0;
rear =1;

while(front<rear)
{
N = q[front++];
for(i = 0;i<4;i++)
{
int tx = N.x + dir[i][0];
int ty = N.y + dir[i][1];
if(tx>=0&&tx<r&&ty>=0&&ty<c&&flag[tx][ty]!=1&&str[tx][ty] == '.')
{
P.x =tx;
P.y =ty;
q[rear++] =P;
flag[tx][ty] = 1;
}
}
}
printf("%d\n",rear);
}
return 0;
}

最新文章

  1. Error:const char* 类型的实参和LPCWSTR类型的形参不兼容的解决方法。
  2. js 随机生成姓名、手机号、身份证号、银行卡号
  3. svn快速教程
  4. js,onblur后下一个控件获取焦点判断、html当前活跃控件、jquery版本查看、jquery查看浏览器版本、setTimeout&amp;setInterval
  5. windows 下mysql每日定时备份的几种方法
  6. Sql Server 系统表功能
  7. DOM-based xss
  8. Financial Management
  9. Oracle存储过程 一个具体实例
  10. ●HDU 3689 Infinite monkey theorem
  11. SSM-MyBatis-03:Mybatis中简单的整合日志
  12. python 获取随机字母
  13. vue中html页面写入$t(‘’)怎么显示
  14. Windows下Codeblocks调试Cocos2d-x项目体验(一次失败的体验)
  15. Http指南(1)
  16. 消息队列之ActiveMQ简单环境搭建
  17. NCBI之gene系列
  18. 用 CSS 实现三角形与平行四边形
  19. mtr网络连通性测试
  20. spring基础----&gt;spring自定义初始化(一)

热门文章

  1. C# 3.0相比C# 2.0增加的功能
  2. Winform ComBox模糊查询
  3. Redis同步操作失败的原因
  4. 【1】JavaScript编程全解笔记(一)
  5. 使用python修改QQ密保(脚本)
  6. UNIX基础--Manual Pages
  7. Error C1189: #error: Please use the /MD switch for _AFXDLL builds
  8. ABAP字符串操作 截取字符长度 取位数
  9. anglarjs概述
  10. HDU 5868 Different Circle Permutation(burnside 引理)