问题标题: 马的遍历怎么写

0
0

0
已采纳
程思怡
程思怡
中级守护
中级守护

搜索策略:

1:令a[1]:=(0,0)

2:从a[i]出发按移动规则选定方向,从而继续搜索下一个顶点

3:输出

附:(四个方向)

1:(i,j)-->(i+2,j+1)

2:(i,j)-->(i+1,j+2)

3:(i,j)-->(i-1,j+2)

4:(i,j)-->(i-2,j+1)

0
杨思诺
杨思诺
新手守护
新手守护
void search(int t,int x,int y)
{
    if(x==4&&y==8)
    {
        for(int i=0;i<t-1;i++)
        {
            cout<<ans[i][0]<<","<<ans[i][1]<<"->";
        }
        cout<<ans[t-1][0]<<','<<ans[t-1][1]<<endl;
        sum++;
    }
    else
    {
        for(int i=0;i<4;i++)
        {
            int nx=x+dir[i][0];
            int ny=y+dir[i][1];
            if(cj(nx,ny)&&!used[nx][ny])
            {
                ans[t][0]=nx;
                ans[t][1]=ny;
                used[nx][ny]=true;
                search(t+1,nx,ny);
                used[nx][ny]=false;
            }
        }
    }
}

 

0
孙艺芳
孙艺芳
高级守护
高级守护
bool ca(int x,int y)
{
    if(x>=0&&x<=4&&y>=0&&y<=8)return true;
    return false;
}
void search(int t,int x,int y)
{
    if(x==4&&y==8)
    {
        for(int i=0;i<t-1;i++)cout<<ans[i][0]<<","<<ans[i][1]<<"->";
        cout<<ans[t-1][0]<<","<<ans[t-1][1]<<endl;
    }
    else
    {
        for(int i=0;i<4;i++)
        {
            int nx=x+dir[i][0];
            int ny=y+dir[i][1];
            if(ca(nx,ny)&&!used[nx][ny])
            {
                ans[t][0]=nx;
                ans[t][1]=ny;
                used[nx][ny]=true;
                search(t+1,nx,ny);
                used[nx][ny]=false;
            }
        }
    }
}

 

0
0
0
谢其桦
谢其桦
资深守护
资深守护

bool ca(int x,int y)

 

{

 

if(x>=0&&x<=4&&y>=0&&y<=8)return true;

 

return false;

 

}

 

void search(int t,int x,int y)

 

{

 

if(x==4&&y==8)

 

{

 

for(int i=0;i<t-1;i++)cout<<ans[i][0]<<","<<ans[i][1]<<"->";

 

cout<<ans[t-1][0]<<","<<ans[t-1][1]<<endl;

 

}

 

else

 

{

 

for(int i=0;i<4;i++)

 

{

 

int nx=x+dir[i][0];

 

int ny=y+dir[i][1];

 

if(ca(nx,ny)&&!used[nx][ny])

 

{

 

ans[t][0]=nx;

 

ans[t][1]=ny;

 

used[nx][ny]=true;

 

search(t+1,nx,ny);

 

used[nx][ny]=false;

 

}

 

}

 

}

 

}

我要回答