记录编号 |
282000 |
评测结果 |
AAAAAAAAA |
题目名称 |
跳房子 |
最终得分 |
100 |
用户昵称 |
521 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2016-07-12 21:10:07 |
内存使用 |
0.00 MiB |
显示代码纯文本
#include<stdio.h>
#include<string.h>
inline void read(int &x)
{
char ch;
while(ch=getchar(),ch<'0'||ch>'9');
x=(ch^'0');
while(ch=getchar(),ch>47&&ch<58)x=(x<<3)+(x<<1)+(ch^'0');
}
bool b[1000010]={0};
int a[10][10]={0},cnt=0,dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
void dfs(int i,int j,int x,int deep)
{
if(deep>5){
if(!b[x])
cnt++,b[x]=1;
return;
}
x=(x<<3)+(x<<1)+a[i][j];
for(int k=1;k<=4;k++)
if(i+dx[k]>=1&&i+dx[k]<=5&&j+dy[k]>=1&&j+dy[k]<=5)
dfs(i+dx[k],j+dy[k],x,deep+1);
}
int _521()
{
freopen("numgrid.in","r",stdin);
freopen("numgrid.out","w",stdout);
int n=5,i,j;
for(i=1;i<=n;i++) for(j=1;j<=n;j++) read(a[i][j]);
memset(b,false,sizeof(b));
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
dfs(i,j,0,0);
printf("%d\n",cnt);
return 0;
}
int _520=_521();
int main(){;}