比赛 练习12 评测结果 AAAAAAAAA
题目名称 跳房子 最终得分 100
用户昵称 皓芷 运行时间 0.017 s
代码语言 C++ 内存使用 4.13 MiB
提交时间 2017-06-30 08:14:15
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#define mysister
#define maxn 1000000
using namespace std;
int a[6][6],vis[maxn],ans=0;
void dfs(int x,int y,int k,int n)
{
	if(k==6){if(!vis[n]){ans++;vis[n]=1;}return;}
	if(x-1>0)dfs(x-1,y,k+1,n*10+a[x-1][y]);
	if(y-1>0)dfs(x,y-1,k+1,n*10+a[x][y-1]);
	if(x+1<6)dfs(x+1,y,k+1,n*10+a[x+1][y]);
	if(y+1<6)dfs(x,y+1,k+1,n*10+a[x][y+1]);
}
int main()
{
	freopen("numgrid.in","r",stdin);
	freopen("numgrid.out","w",stdout);
	for(int i=1;i<=5;i++)
	  for(int j=1;j<=5;j++)
	    scanf("%d",&a[i][j]);
	memset(vis,0,sizeof(vis));
	for(int i=1;i<=5;i++)
	  for(int j=1;j<=5;j++)
	    dfs(i,j,1,a[i][j]);
	printf("%d",ans);
	return 0;
}