题目链接:http://poj.org/problem?id=3984

解题报告:

1、设置node结构体,成员pre记录该点的前驱。

2、递归输出:

void print(int i)
{
if(q[i].pre!=-)
{
print(q[i].pre);
printf("(%d, %d)\n",q[i].x,q[i].y);
}
}
int MAP[][];
int front=;
int rear=; int mov[][]={{,},{-,},{,},{,-}}; struct node{
int x,y;
int pre;///从左上角到右下角的每一个元素的,前一个元素的位置,即保存路径;
}q[]; void print(int i)
{
if(q[i].pre!=-)
{
print(q[i].pre);
printf("(%d, %d)\n",q[i].x,q[i].y);
}
} void bfs(int x1,int y1)
{
q[front].x=x1;
q[front].y=y1;
q[front].pre=-;
while(front<rear)
{
for(int k=;k<;k++)
{
int tx=q[front].x+mov[k][];
int ty=q[front].y+mov[k][];
if(tx<||tx>||ty<||ty>||MAP[tx][ty])
continue;
else
{
MAP[tx][ty]=;
q[rear].x=tx;
q[rear].y=ty;
q[rear].pre=front;
rear++;
}
if(tx==&&ty==)
{
print(front);
return ;
}
}
front++;
}
} int main()
{
for(int i=;i<;i++)
for(int j=;j<;j++)
scanf("%d",&MAP[i][j]);
printf("(%d, %d)\n",,);
bfs(,);
printf("(%d, %d)\n",,);
return ;
}

最新文章

  1. Charles常用的十大功能
  2. 华东交通大学2016年ACM“双基”程序设计竞赛 1008
  3. cookie注入讲解
  4. 如何在Html的CSS中去除&lt;li&gt;标签前面小黑点,和ul、LI部分属性方法
  5. checkbox复选框样式
  6. Umbraco Form需要引用些客户端dependencies (jquery)
  7. Java系统程序员修炼之道
  8. DOM 样式操作
  9. 无线功率 mW 和 dBm 的换算
  10. 安装myeclipse2015 stable 3.0破解之后发生出现SECURITY ALERT:iNTEGRITY CHECK ERROR然后闪退解决方案
  11. 禁止mui事件tab切换内容左右滑动
  12. 【转】Python微信好友头像拼接图
  13. mysql \N 的疑惑
  14. Numpy求均值、中位数、众数的方法
  15. HDU 1010 Tempter of the Bone (DFS+可行性奇偶剪枝)
  16. 【深入spring】IoC容器的实现
  17. JavaScript:今天是今年第几周?
  18. Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis
  19. 命令模式(head first 设计模式5)
  20. Java 8 可重复注解与类型注解

热门文章

  1. python学习3(转载)
  2. Python数据可视化--matplotlib
  3. JavaSE---死锁
  4. Unity 双击Esc或者返回退出游戏,有文字提示
  5. Java基础07-随机数
  6. 《大巧不工 web前端设计修炼之道》学习笔记
  7. java 多线程 yield方法的意义
  8. NodeJS 开发应用
  9. ZR国庆Round2解题报告
  10. web项目无法被Eclipse的Tomcat识别的解决办法