用一个字符串数组按行存储地图:
#include<bits/stdc++.h>
using namespace std;
string g[10];
int vis[10][10];
int ans;
bool sovel(int x,int y)
{
//递归结束条件
if(x<0||x>9||y<0||y>9)return true;
//走过的位置不能再走
if(vis[x][y]==1)return false;
vis[x][y]=1; //当前位置标记为走过
switch(g[x][y])
{
case 'U': return sovel(x-1,y);
case 'D': return sovel(x+1,y);
case 'L': return sovel(x,y-1);
case 'R': return sovel(x,y+1);
default : return false;
}
}
int main()
{
g[0]="UDDLUULRUL";
g[1]="UURLLLRRRU";
g[2]="RRUURLDLRD";
g[3]="RUDDDDUUUU";
g[4]="URUDLLRRUU";
g[5]="DURLRLDLRL";
g[6]="ULLURLLRDU";
g[7]="RDLULLRDDD";
g[8]="UUDDUDUDLL";
g[9]="ULRDLUURRR";
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
memset(vis,0,sizeof vis);
bool res=sovel(i,j);
if(res)
{
ans++;
}
}
}
cout<<ans<<endl;
return 0;
}