比赛 练习12 评测结果 AAAAAAAAA
题目名称 跳房子 最终得分 100
用户昵称 liuyu 运行时间 0.008 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2017-06-30 09:46:45
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

int s[6][6],cnt=0;
map<int,int>m;

void dfs(int x,int y,int nu,int seat)
{
	if(seat==6){
		if(!m.count(nu)){
			cnt++;
			m[nu]=1;
			return ;
		}
		else return;
	}
	if((x-1))dfs(x-1,y,nu*10+s[x-1][y],seat+1);
	if(y-1)dfs(x,y-1,nu*10+s[x][y-1],seat+1);
	if(x+1<6)dfs(x+1,y,nu*10+s[x+1][y],seat+1);
	if(y+1<6)dfs(x,y+1,nu*10+s[x][y+1],seat+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",&s[i][j]);
	for(int i=1;i<=5;i++)
	  for(int j=1;j<=5;j++)
	  {
	  	dfs(i,j,s[i][j],1);
	  }
	printf("%d\n",cnt);
	return 0;
}