预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

WordMaze是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f。但现在你的任务可没有这么简单,你现在处于一个迷宫Maze〔nxm的矩阵〕当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。如下列图,指定W为“SOLO,则在地图中红色标注了单词“SOLO。TOC\o"1-5"\h\zCPUCYEKLQHCRS0LFAIA0PGRBC注意区分英文字母大小写,你只能上下左右行走。运行时间限制:无限制内存限制:无限制输入:输入第一行包含两个整数n、m(0<n,m<21)分别表示n行m列的矩阵,第二行是长度不超过1的单词W,从第3行到底n+3行是只包含大小写英文字母的长度为m的字符串。输出:如果能在地图中连成给定的单词,则输出“YES,否则输出“NO。注意:每个字母只能用一次。55SOLOCPUCY样例输入:EKLQHCRSOLEKLQOPGRBC样例输出:YES答案提示:boolmaze(chararray[21][21],intm,intn,char*word){inti,j,w=0;intx,y;for(i=0;i<m;i++){x=i;for(j=0;j<n;j++){y=j;if(array[x][y]==word[w]){while('\0'!=word[w])w++;if((x>0)&&(x<m-1)&&(y>0)&&(y<n-1)){if(array[x-1][y]==word[w]){x=x-1;}elseif(array[x+1][y]==word[w]){x=x+1;}y=y-1;}elseif(array[x][y+1]==word[w]){y=y+1;}elsebreak;}elseif((x<m-1)&&(y>0)&&(y<n-1)){if(array[x+1][y]==word[w]){x=x+1;}elseif(array[x][y-1]==word[w]){y=y-1;}elseif(array[x][y+1]==word[w]){y=y+1;}elsebreak;}elseif((x>0)&&(y>0)&&(y<n-1)){x=x-1;}elseif(array[x][y-1]==word[w]){y=y-1;}elseif(array[x][y+1]==word[w]){y=y+1;}elsebreak;}elseif((x>0)&&(x<m-1)&&(y<n-1)){if(array[x-1][y]==word[w]){x=x-1;}elseif(array[x+1][y]==word[w]){x=x+1;}elseif(array[x][y+1]==word[w]){y=y+1;}elsebreak;}elseif((x>0)&&(x<m-1)&&(y>0)){if(array[x-1][y]==word[w]){x=x-1;}elseif(array[x+1][y]==word[w]){x=x+1;}elseif(array[x][y-1]==word[w]){y=y-1;}elsebreak;}elseif((x<m-1)&&(y<n-1)){if(array[x+1][y]==word[w]){x=x+1;}elseif(array[x][y+1]==word[w]){y=y+1;}elsebreak;}elseif((x<m-1)&&(y>0)){if(array[x+1][y]==word[w]){x=x+1;}elseif(array[x][y-1]==word[w]){y=y-1;}elsebreak;}elseif((x>0)&&(y<n-1)){if(array[x-1][y]==word[w]){x=x-1;}elseif(array[x][y+1]==word[w]){y=y+1;}elsebreak;}elseif((x>0)&&(y>0))x=x-1;}elseif(array[x][y-1]==word[w]){y=y-1;}elsebreak;}}if('\0'==word[w]){return1;}}}}return0;}intmain(void){intm,n;charword[1];charinput[21]