(1条消息) POJ 3050 Hopscotch(深搜)_3050hopscotch_皮皮皮皮皮皮皮卡乒的博客-CSDN博客
#include <iostream>
#include<cstring>
#include<set>
using namespace std;
int a[5][5];
int i;
set<int> s;
int dis[4][2]={0,1,0,-1,1,0,-1,0};
void dfs(int x,int y,int n,int sum){
if(n==5){
s.insert(sum);
return ;
}
for(i=0;i<4;i++){
int xx=x+dis[i][0];
int yy=y+dis[i][1];
if(xx>=0&&yy>=0&&xx<5&&yy<5)
dfs(xx,yy,n+1,sum*10+a[xx][yy]);
}
}
int main(void){
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
dfs(i,j,0,a[i][j]);
printf("%d\n",s.size());
return 0;
}