已结贴√

问题点数: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语言并输出坐标,输出迷宫路径相关推荐

  1. 不思议迷宫c语言基础,不思议迷宫神龙收藏品一览

    不思议迷宫神龙收藏品一览是9K9K小编柚子人为大家带来的,七龙珠召唤神龙作为游戏最为迷人的彩蛋之一,召唤神龙拿钻石作为众多玩家的首选目标,但神龙的收藏品你知道多少呢,下面不妨详细了解一下吧. 神龙收藏 ...

  2. c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*获取当前SVGA屏幕模式*/ unsigned int get_SVGA_mode() { union REGS r; r.x.ax=0x4f03; ...

  3. 蜂巢迷宫 c语言,最强大脑的蜂巢迷宫 创意源于此

    背景 人们为了更好的描述一个东西,有一种将大化小的思路,比如时钟被分为了12个区域,每个区域表示一个小时,然后每个小的区域又被划分为更小的区域表示分钟. 在GIS系统中,也有类似的思想,比如将地图划分 ...

  4. 不思议迷宫c语言基础,不思议迷宫新手谜题汇总

    可盘游戏BT盒子是一款功能十分强大的游戏福利软件,这里汇聚了全网最热门最好玩的手游.大家不仅可以在这里获得各种折扣福利,还能下载游戏... 类型:辅助工具 大小:17.42M 语言:简体中文 不思议的 ...

  5. 不思议迷宫c语言基础,不思议迷宫新手攻略 新手常见50个问题分享汇总

    不思议迷宫新手应该怎么玩,经常遇到的问题有哪些呢.今天小编就给大家分享一下,新手常见50个问题分享汇总,有需要的小伙伴,和小编一起来看看吧,希望对大家有所帮助. 不思议迷宫新手攻略 新手常见50个问题 ...

  6. 不思议迷宫c语言基础,不思议迷宫神龙基础知识科普小秘籍讲解

    不思议迷宫神龙的基础知识有些玩家可能还不是很了解,不思议迷宫神龙基础知识到底有哪些呢?要知道神龙的基础知识,说多不多,但是说少也不少,今天小编就带着大家一起来了解一下,看看它的具体解析,希望能够帮助到 ...

  7. 不思议迷宫c语言基础,不思议迷宫新手注意事项 新手实用技巧

    不思议迷宫是一款对新手不怎么友好的游戏,因此新手上手需要注意许多东西,那么一起来看看新手注意实行与实用技巧吧. 1,SL大法 分两种,小的是在你没有进门之前,退掉游戏,然后再上,这样可以刷新这一层的东 ...

  8. 不思议迷宫c语言基础,不思议迷宫新手必须知道的几件事情

    开通关卡 开通关卡是每个萌新在游戏初期都必须要做的一件事情.除了可以获得新的游戏功能,让冒险者们冈布奥的养成上限提高之外,还可以获得新的冈布奥,对冒险者们实力的增强有极大的贡献. 刷DP 在通关一定关 ...

  9. 随机迷宫 c语言思路,[原创]递归随机迷宫生成算法详解

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include char cw[][4]={" ","┃","━& ...

最新文章

  1. Matlab编程与数据类型 -- 多维数组
  2. (二)Javascript面向对象编程:构造函数的继承
  3. 等参元八节点matlab,四边形八节点等参元matlab程序
  4. linux——awk 报告生成器
  5. What Are You Talking About HDU1075
  6. 【Kafka】Kafka BrokerEndPointNotAvailableException: End point with security protocol PLAINTEXT not
  7. [转载] python字符串方法有哪些_27种Python字符串操作方法大全
  8. Integer在webservice的传递
  9. SharePoint 2007和WSS 3.0 SDK 1.2 Release
  10. C# 在word中查找及替换文本
  11. BZOJ 4807(車-高精度)
  12. 发论文为嘛这么难?灵魂画手扒一扒“同行评审”那些事
  13. java集合根据条件筛选数据
  14. Python--所有的库
  15. RN-Flex Box---基础
  16. python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...
  17. 编码理解 | 卷积的实现和卷积神经网络
  18. c语言编程题总结,c语言编程题总结
  19. 用友优普孙永军:制造业的三座“大山”
  20. 【C语言程序设计】求自然底数e,求自然对数的底e!

热门文章

  1. 基于Prompt的MLM文本分类
  2. 不要停止预训练实战(二)-一日看尽MLM
  3. SQL Server 动态数据掩藏(Dynamic Data Masking)探索和实施
  4. OPPOA33T_官方线刷包_救砖包_解账户锁
  5. 蓝牙耳机真的方便了我们的生活?
  6. 消息队列处理秒杀/拼团活动的高并发问题
  7. 仿网易新闻栏目管理(频道管理)功能
  8. java获取本机mac物理地址
  9. 【verilog】 异步FIFO设计(格雷码转换,跨时钟域)
  10. Vs2017远程调试图文教程(以及避坑点)