题意:问从5*5的矩阵中选连续的6个组成的字符串有多少种
题解:dfs
View Code
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 int map[6][6]; 7 set ss; 8 void dfs(int x,int y,int res,int k) 9 {10 if(k==6)11 {12 ss.insert(res);13 return;14 }15 res=res*10+map[x][y];16 if(x>1)17 dfs(x-1,y,res,k+1);18 if(x<5)19 dfs(x+1,y,res,k+1);20 if(y>1)21 dfs(x,y-1,res,k+1);22 if(y<5)23 dfs(x,y+1,res,k+1);24 }25 int main()26 {27 ss.clear();28 for(int i=1;i<=5;i++)29 for(int j=1;j<=5;j++)30 scanf("%d",&map[i][j]);31 for(int i=1;i<=5;i++)32 for(int j=1;j<=5;j++)33 dfs(i,j,0,0);34 printf("%d\n",ss.size());35 return 0;36 }