迷宫的最短路径
来源:互联网 发布:淘宝有漫威旗舰店吗 编辑:程序博客网 时间:2024/05/15 02:46
Problem Description
用“怀中抱妹杀”干掉大巫婆后,木有结草童鞋提起钢枪去找女神的秀发。进入巫婆的大宫殿。谁知宫殿的大厅是一个大迷宫,因为木有结草已经迫不及待与女神见面,他要你帮帮他算一算到女神所在的地牢的入口的最短距离有多少步。假设木有结草一步只可以向上下左右走一格。不能走到有大坑的地方。保证可以走到地牢入口。
Input
输入的第一行为(t<=50)表示有t组数据。
每组数据的第一行有两个整数a<=25,b<=25,表示大厅的大小。
接下来的a行b列有一个矩阵,描述大厅的地貌。
“#”表示坑,“.”表示路,“+”表示地牢入口,“*”表示木有结草开始所在的位置。数据保证有解。
每组数据的第一行有两个整数a<=25,b<=25,表示大厅的大小。
接下来的a行b列有一个矩阵,描述大厅的地貌。
“#”表示坑,“.”表示路,“+”表示地牢入口,“*”表示木有结草开始所在的位置。数据保证有解。
Output
每组数据输出一个数,表示木有结草走到地牢入口的最短步数。
Sample Input
15 6######......#+#..#.#...#*...##
Sample Output
9提示:数据结构之队列queue+简单搜索。
#include<stdio.h>char a[50][50];int sum,n,m;void search(int x,int y,int num){char temp;if(x>m||y>n||x<1||y<1||a[x][y]=='.')return;if(a[x][y]=='+'){if(sum>num)sum=num;return;}a[x][y]='#';temp=a[x+1][y];search(x+1,y,num+1);a[x+1][y]=temp;temp=a[x-1][y];search(x-1,y,num+1);a[x-1][y]=temp;temp=a[x][y+1];search(x,y+1,num+1);a[x][y+1]=temp;temp=a[x][y-1];search(x,y-1,num+1);a[x][y-1]=temp;}void main(){int t,x,y;int i,j;scanf("%d",&t);while(t--){sum=1000000;scanf("%d%d",&n,&m);for(i=1;i<=n;i++){getchar();for(j=1;j<=m;j++){scanf("%c",&a[i][j]);if(a[i][j]=='*'){x=i;y=j;}}}search(x+1,y,0);search(x-1,y,0);search(x,y+1,0);search(x,y-1,0);printf("%d\n",sum+1);}}
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫的最短路径
- 迷宫最短路径
- 迷宫最短路径
- 迷宫最短路径
- 迷宫-最短路径
- 迷宫最短路径
- BFS 迷宫的最短路径问题
- BFS:迷宫的最短路径
- BFS求迷宫的最短路径
- 迷宫的最短路径 代码(C++)
- Windows Mobile 开发环境搭建
- 智谷联GPS警务通系统-拍照,指纹识别,RFID,3G等多功能手持PDA
- UDP通信
- spring对DAO的支持
- 成为优秀程序员的10点建议
- 迷宫的最短路径
- The Simpsons第三季简要总结
- iOS News Reader阅读开源项目
- iphone开发者笔记5
- VS2010配色方案
- Java高级编程:使用反射强制给private字段赋值
- 深入浅出MIPS 五 MIPS的异常与中断 (Section 3)
- Javascript中的For In语句
- vi 打开大文件报错:(0602-101 Out of memory saving lines for undo)