通过此题了解到了set这么个东西。此题很简单,就不多说了。
#include<cstdio>
#include<set>
#define buyuejue 0<=ny && ny<5 && 0<=nx && nx<5
using namespace std;
int grid[10][10];
int dy[4] = {-1, 1, 0, 0};
int dx[4] = {0, 0, -1, 1};
set<int> integer;
void ini()
{
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
scanf("%d", &grid[i][j]);
}
}
}
void dfs(int y, int x, int cnt, int sum)
{
if(cnt == 5){
integer.insert(sum);
return;
}
for(int k=0; k<4; k++){
int ny = y + dy[k];
int nx = x + dx[k];
if(buyuejue){
dfs(ny, nx, cnt+1, sum*10+grid[ny][nx]);
}
}
}
int main()
{
ini();
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
dfs(i, j, 0, grid[i][j]);
}
}
printf("%d", integer.size());
return 0;
}