解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
int n,m,ans;
int sx,sy;
char s[50][50];
int b[50][50];
void dfs(int x,int y,int sum)
{
int i,j,tx,ty,k;
int hang[4][2]={{1,0},{0,1},{0,-1},{-1,0}};
if(x==sx&&y==sy)
{
if(sum<=ans)
ans=sum;
return;
}
for(i=0;i<4;i++)
{
tx=x+hang[i][0];
ty=y+hang[i][1];
if(tx<0||ty<0||tx>=n||ty>=m)
continue;
else
;
if(b[tx][ty]!=0)
continue;
else
;
if(s[tx][ty]=='X')
continue;
else
;
if(s[tx][ty]=='T')
k=sum+2;
else
k=sum+1;
b[tx][ty]=1;
dfs(tx,ty,k);
b[tx][ty]=0;
}
}
int main()
{
int i,j,k;
while(scanf("%d %d",&n,&m)!=EOF)
{
getchar();
for(i=0;i<50;i++)
for(j=0;j<50;j++)
b[i][j]=0;
for(i=0;i<n;i++)
scanf("%s",s[i]);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(s[i][j]=='A')
{
sx=i;sy=j;
break;
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(s[i][j]=='C')
goto lee;
lee: b[i][j]=1;
ans=99999;
dfs(i,j,0);
if(ans!=99999)
printf("%d\n",ans);
else
printf("Game Over!\n");
}
return 0;
}
0.0分
3 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:588 |
矩阵乘法 (C++代码)浏览:1662 |
上车人数 (C语言代码)浏览:816 |
【排队买票】 (C语言代码)浏览:944 |
WU-链表数据求和操作 (C++代码)浏览:1382 |
【矩阵】 (C++代码)浏览:999 |
DNA (C语言代码)浏览:564 |
1017题解浏览:663 |
简单的a+b (C语言代码)浏览:529 |
输出九九乘法表 (C语言代码)浏览:1172 |