迷宫c语言并输出坐标,输出迷宫路径
已结贴√
问题点数:20 回复次数:5
输出迷宫路径
题目:http://acm.hdu.
先说下题意,给个图,'.'代表可走,'X'代表墙,数字(1-9)代表怪物,只能上下左右走。从一个'.'走到另一个'.'花费1秒,如果当前所在处有n只怪物,需要停留n秒来消灭怪物。求从图的左上点走到右下点花费的最小时间以及其路线。
莫名奇妙的Runtime Error
CODE:
#include
#include
#include
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int visit[200][200];
int father[200][200][2];
int min=999999;
int judge(int x,int y,int n,int m,char map[200][200])
{
if(x>=0&&x=0&&y
return 1;
return 0;
}
void print(int x,int y,int step,char map[200][200])
{
if(x==0&&y==0)
return ;
if(map[x][y]>='1'&&map[x][y]<='9')
{
map[x][y]--;
print(x,y,step-1,map);
printf("%ds:FIGHT AT (%d,%d)\n",step,x,y);
}
else
{
print(father[x][y][0],father[x][y][1],step-1,map);
printf("%ds:(%d,%d) -> (%d,%d)\n",step,father[x][y][0],father[x][y][1],x,y);
}
}
void bfs(char map[200][200],int n,int m,int startx,int starty,int endx,int endy)
{
int head=0,tail=1;
int i,x,y,step,xx,yy;
int queue[40000][3];
memset(queue,0,sizeof(queue));
queue[0][0]=startx;
queue[0][1]=starty;
queue[0][2]=0;
visit[startx][starty]=0;
while(head
{
x=queue[head][0];
y=queue[head][1];
step=queue[head][2];
if(x==endx&&y==endy)
{
if(step
min=step;
}
head++;
//printf("%d %d %d\n",x+1,y+1,step);
for(i=0;i<4;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(judge(xx,yy,n,m,map)==1&&step
{
if(map[xx][yy]>='1'&&map[xx][yy]<='9')
{
queue[tail][0]=xx;
queue[tail][1]=yy;
queue[tail][2]=step+map[xx][yy]-'0'+1;
father[xx][yy][0]=x;
father[xx][yy][1]=y;
visit[xx][yy]=step+map[xx][yy]-'0'+1;
tail++;
}
else
{
queue[tail][0]=xx;
queue[tail][1]=yy;
queue[tail][2]=step+1;
father[xx][yy][0]=x;
father[xx][yy][1]=y;
visit[xx][yy]=step+1;
tail++;
}
}
}
}
}
int main()
{
char map[200][200];
int i,j,startx,starty,endx,endy,n,m;
while(scanf("%d %d",&n,&m)!=EOF)
{
min=999999;
memset(map,0,sizeof(map));
memset(father,0,sizeof(father));
for(i=0;i
for(j=0;j
visit[i][j]=999999;
for(i=0;i
{
scanf("\n");
for(j=0;j
scanf("%c",&map[i][j]);
}
startx=0,starty=0;
endx=n-1,endy=m-1;
bfs(map,n,m,startx,starty,endx,endy);
if(min==999999)
{
printf("God please help our poor hero.\n");
printf("FINISH\n");
}
else
{
printf("It takes %d seconds to reach the target position, let me show you the way.\n",min);
print(n-1,m-1,min,map);
printf("FINISH\n");
}
}
//system("pause");
return 0;
}
[本帖最后由 sunyh1999 于 2011-6-18 16:22 编辑]
迷宫c语言并输出坐标,输出迷宫路径相关推荐
- 不思议迷宫c语言基础,不思议迷宫神龙收藏品一览
不思议迷宫神龙收藏品一览是9K9K小编柚子人为大家带来的,七龙珠召唤神龙作为游戏最为迷人的彩蛋之一,召唤神龙拿钻石作为众多玩家的首选目标,但神龙的收藏品你知道多少呢,下面不妨详细了解一下吧. 神龙收藏 ...
- c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*获取当前SVGA屏幕模式*/ unsigned int get_SVGA_mode() { union REGS r; r.x.ax=0x4f03; ...
- 蜂巢迷宫 c语言,最强大脑的蜂巢迷宫 创意源于此
背景 人们为了更好的描述一个东西,有一种将大化小的思路,比如时钟被分为了12个区域,每个区域表示一个小时,然后每个小的区域又被划分为更小的区域表示分钟. 在GIS系统中,也有类似的思想,比如将地图划分 ...
- 不思议迷宫c语言基础,不思议迷宫新手谜题汇总
可盘游戏BT盒子是一款功能十分强大的游戏福利软件,这里汇聚了全网最热门最好玩的手游.大家不仅可以在这里获得各种折扣福利,还能下载游戏... 类型:辅助工具 大小:17.42M 语言:简体中文 不思议的 ...
- 不思议迷宫c语言基础,不思议迷宫新手攻略 新手常见50个问题分享汇总
不思议迷宫新手应该怎么玩,经常遇到的问题有哪些呢.今天小编就给大家分享一下,新手常见50个问题分享汇总,有需要的小伙伴,和小编一起来看看吧,希望对大家有所帮助. 不思议迷宫新手攻略 新手常见50个问题 ...
- 不思议迷宫c语言基础,不思议迷宫神龙基础知识科普小秘籍讲解
不思议迷宫神龙的基础知识有些玩家可能还不是很了解,不思议迷宫神龙基础知识到底有哪些呢?要知道神龙的基础知识,说多不多,但是说少也不少,今天小编就带着大家一起来了解一下,看看它的具体解析,希望能够帮助到 ...
- 不思议迷宫c语言基础,不思议迷宫新手注意事项 新手实用技巧
不思议迷宫是一款对新手不怎么友好的游戏,因此新手上手需要注意许多东西,那么一起来看看新手注意实行与实用技巧吧. 1,SL大法 分两种,小的是在你没有进门之前,退掉游戏,然后再上,这样可以刷新这一层的东 ...
- 不思议迷宫c语言基础,不思议迷宫新手必须知道的几件事情
开通关卡 开通关卡是每个萌新在游戏初期都必须要做的一件事情.除了可以获得新的游戏功能,让冒险者们冈布奥的养成上限提高之外,还可以获得新的冈布奥,对冒险者们实力的增强有极大的贡献. 刷DP 在通关一定关 ...
- 随机迷宫 c语言思路,[原创]递归随机迷宫生成算法详解
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include char cw[][4]={" ","┃","━& ...
最新文章
- Matlab编程与数据类型 -- 多维数组
- (二)Javascript面向对象编程:构造函数的继承
- 等参元八节点matlab,四边形八节点等参元matlab程序
- linux——awk 报告生成器
- What Are You Talking About HDU1075
- 【Kafka】Kafka BrokerEndPointNotAvailableException: End point with security protocol PLAINTEXT not
- [转载] python字符串方法有哪些_27种Python字符串操作方法大全
- Integer在webservice的传递
- SharePoint 2007和WSS 3.0 SDK 1.2 Release
- C# 在word中查找及替换文本
- BZOJ 4807(車-高精度)
- 发论文为嘛这么难?灵魂画手扒一扒“同行评审”那些事
- java集合根据条件筛选数据
- Python--所有的库
- RN-Flex Box---基础
- python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...
- 编码理解 | 卷积的实现和卷积神经网络
- c语言编程题总结,c语言编程题总结
- 用友优普孙永军:制造业的三座“大山”
- 【C语言程序设计】求自然底数e,求自然对数的底e!