蓝桥杯-玩具蛇

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int arra[5][5];
 4 int visited[5][5];
 5 int direction[5][3];
 6 int sum=0;
 7 void DFS(int x,int y,int step)
 8 {
 9     cout << step << endl;
10     if(step==1)
11     {
12         sum++;
13         return;
14     }
15     for(int i=1;i<=4;i++)
16     {
17 
18         int xx = x+direction[i][1];
19         int yy = y+direction[i][2];
20         if(xx<1||xx>4||yy<1||yy>4||visited[xx][yy]==1)
21         {
22             continue;
23         }
24         visited[xx][yy]=1;
25         DFS(xx,yy,step-1);
26         visited[xx][yy]=0;
27     }
28 
29 }
30 int main()
31 {
32     //方向
33     direction[1][1]=1;
34     direction[1][2]=0;
35 
36     direction[2][1]=0;
37     direction[2][2]=1;
38 
39     direction[3][1]=-1;
40     direction[3][2]=0;
41 
42     direction[4][1]=0;
43     direction[4][2]=-1;
44 
45     for(int i=1;i<=4;i++)
46     {
47         for(int j=1;j<=4;j++)
48         {
49             visited[i][j]=1;
50             DFS(i,j,16);
51             visited[i][j]=0;
52         }
53     }
54     cout << sum;
55     return 0;
56 }
原文地址:https://www.cnblogs.com/Angfe/p/14848580.html