比赛 |
练习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;
}