Responsive image

问题 A: 第1关:迷宫问题

问题 A: 第1关:迷宫问题

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 33
[提交][状态][讨论版][命题人:]

题目描述

密密被困在一个迷宫里,迷宫有n个路口,编号为1-n。密密现在站在第一个路口,出口编号为m。先给出每个路口通向何处,问密密能否逃出迷宫。
#include <iostream>
using namespace std;
int m,n;//m:出口编号  n:入口
int tag;//输出标记
int DFS(int k,int (*a)[3])
{//深度搜索第k层,k:当前路口
/**************begin************/





    /**************end************/
}
int main()
{
while(cin>>n)
{
if(n==0)break;
int i,j;
tag=0;
int a[n+1][3];//迷宫
for(i=1;i<=n;i++)
for(j=0;j<3;j++)
cin>> a[i][j];
cin>>m;
DFS(1,a);//从第一层开始搜索
if(tag==1)
cout<<"YES"<<endl;
else if(tag==0)
cout<<"NO"<<endl;
}
return 0;
}

输入描述

多组数据,每组数据n+2行。第一行为一个正整数n代表路口的个数,之后n行,这n行中的第i行为第i个路口的向左路口、向前路口、向右路口。最后一行为一个正整数m代表迷宫的终点。当n=0时输入结束。

输出描述

每组数据输出一行,若密密能走出迷宫,输出“YES”,否则输出“NO”。

样例输入

6
0 2 0
3 5 6
0 0 4
0 0 0
0 0 0
7 0 0
7
3
2 0 0
0 0 0
0 0 0
3
0

样例输出

YES
NO

提示


组合提交代码,你需要提交



int DFS(int k,int (*a)[3])

{//深度搜索第k层,k:当前路口

/**************begin************/











    /**************end************/

}





[提交][状态]
ACM算法攻关部