Wrong Answer
代码
信息
- 递交者
- 类型
- 递交
- 题目
- P1001 hitwh 2019 新生赛 B lxdlam 和他的迷宫
- 语言
- C
- 递交时间
- 4 年前
- 评测时间
- 4 年前
- 评测机
- 分数
- 0
- 总耗时
- 3ms
- 峰值内存
- 220.0 KiB
#include <stdio.h>
char mi[10][10]={0},vis[10][10]={0};
int flag=0;
void dfs(int a,int b)
{
if(a==10&&b==10)
{
printf("Yes\n");
flag=1;
return;
}
if(a+1<=10&&vis[a+1][b]==0&&!mi[a+1])
{
vis[a+1][b]=1;
dfs(a+1,b);
if(flag)return;
vis[a+1][b]=0;
}
if(b+1<=10&&vis[a][b+1]==0&&!mi[a][b+1])
{
vis[a][b+1]=1;
dfs(a,b+1);
if(flag) return ;
vis[a][b+1]=0;
}
//向右走
if(b-1>=1&&vis[a][b-1]==0&&!mi[a][b-1])
{
vis[a][b-1]=1;
dfs(a,b-1);
if(flag) return ;
vis[a][b-1]=0;
}//向左走
if(a-1>=1&&vis[a-1][b]==0&&!mi[a-1][b])
{
vis[a-1][b]=1;
dfs(a-1,b);
if(flag) return ;
vis[a-1][b]=0;
}//向上走
return ;
}
int main()
{
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
char a=getchar();
if(a=='.')
{
mi[i][j]=0;
}
else
{
mi[i][j]=1;
}
}
printf("\n");
}
vis[1][1]=1;
dfs(1,1);
if(!flag)
{
printf("No\n");
}
}