思路:这一题思路很简单就是一个普通的深搜,玩具蛇总共有十六节,所以可以遍历初始位置坐标如果能走16步
#include<stdio.h>
#include<string.h>
int ans=0,book[1010][1010];
int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
void dfs(int x,int y,int step)
{
int tx,ty,k;
if(step==16)
{
ans++;
return;
}
for(k=0;k<4;k++)
{
tx=x+next[k][0];
ty=y+next[k][1];
if(tx>=0&&tx<4&&ty>=0&&ty<4&&book[tx][ty]==0)
{
book[tx][ty]=1;
dfs(tx,ty,step+1);
book[tx][ty]=0;
}
}
return;
}
int main()
{
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
memset(book,0,sizeof(book));
book[i][j]=1;
dfs(i,j,1);
}
}
printf("%d",ans);
}
答案552